当前位置: 首页 > news >正文

EXCEL常用函数公式和VBA汇总第二篇

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、excel公式应用
    • 1.rand函数
    • 2.rand函数随机排序
    • 3.rand函数提取数据
    • 4.correl函数
    • 5.SUBSTITUTE函数
    • 6.MAX组合函数
    • 7.分析下班时间
    • 8.柏拉图自动排序
  • 总结


前言

一、excel公式应用

1.rand函数

用excel生成1-5的随机数字,其中对应的概率分别为10%,20%,30%,10%,30%

选中A1:A50区域,输入:
=MATCH(RAND(),{0,0.1,0.3,0.6,0.7,1})

解析:
1、用rand()函数生成0-1之间的随机数;
2、MATCH()函数省略第三个参数时,会查找小于或等于第一个参数的最大值(前提条件:lookup_array参数中的值必须按升序排列),返回这个值所在的位置。
3、0.1-0为10%的概率;0.3-0.1为20%的概率,依次类推;

2.rand函数随机排序

如何将多行内容随机重新排序?

假设数据在A列,可在B1单元格中输入rand(),向下填充,排序;

3.rand函数提取数据

在1-35里任取6个不重复的数?

A1单元格留空,B1单元格输入
=LARGE(IF(COUNTIF(A1:A1,ROW(1:35))=0,ROW(1:35)),RAND()*(36-COLUMN(B1))+1)
ctrl + shift + enter

4.correl函数

1、correl函数是一种用于计算变量之间的相关性的数学函数,用于分析两个变量之间的联系。correl函数的计算步骤是将两个变量的数据集的所有数据点的x和y坐标作为输入参数,然后计算每一对数据点之间的距离,并根据这个距离来计算两个变量之间的相关性。距离越大,相关性越小;
2、另外,correl函数也会结合拟合曲线,通过计算回归方程的参数,即斜率和截距,来确定变量之间的线性关系;,即当x变化时,变量y会如何变化。这些参数可以用来度量不同变量之间的相关性以及度量y受到变量x的影响程度;
3、此外,correl函数还可以帮我们计算一个变量的“预期值”,及预测该变量的未来值。因此,使用correl函数可以帮我们作出更精确的预测。
4、在excel中,correl函数和person函数提供了计算两个变量之间的相关系数的方法;与相关系数有关的函数还有rsq(相关系数的平方)
5、correl(array1,array2)返回单元格区域之间的相关系数。

5.SUBSTITUTE函数

在文本字符串中用new_text替代old_text,如果需要在某一文本字符串中替换指定文本,使用substitute;如果需要在某一文本字符串中替换指定位置处的任意文本,使用Replace;

SUBSTITUTE(text,old_text,new_text,[instance_num])

  • Text 不省略参数。为需要替换其中字符的文本,或对含有文本的单元格的引用。
  • Old_text 不省略参数。为需要替换的旧文本。
  • New_text 不省略参数,但有默认值空。用于替换 old_text 的文本。
  • Instance_num 为一数值,用来指定以 new_text 替换第几次出现的 old_text。如果指定了 instance_num,则只有满足要求的 old_text 被替换;如果缺省则将用 new_text 替换 TEXT 中出现的所有 old_text。
=SUBSTITUTE(ADDRESS(1,COLUMN(B1),2)"1","")

6.MAX组合函数

=MAX(OFFSET(B$1,ROW($52:$102)-1,,(MATCH(AF$3,A:A,0)-MATCH(AE$3,A:A,0))))
{=IFERROR(MAX(OFFSET(B$1,($AJ3:$AK3)-1,,(MATCH($AF3,$A:$A,0)-MATCH($AE3,$A:$A,0))+1)),"")}

7.分析下班时间

1.需要按照岗位类型、班次统计下班打卡时间与规定下班时间的时间间隔

=IF(AND(E2="技能作业类",G2="B017B光学两班组10-夜班"),ROUND(ABS(TIMEVALUE(TEXT(K2,"h:mm"))-TIME(7,30,0))*1440,0),
IF(AND(E2="技能作业类",G2="B013A光学两班组5-白班"),ROUND(ABS(TIMEVALUE(TEXT(K2,"h:mm"))-TIME(19,30,0))*1440,0),
IF(AND(E2="技能作业类",G2="B013B光学两班组5-夜班"),ROUND(ABS(TIMEVALUE(TEXT(K2,"h:mm"))-TIME(7,30,0))*1440,0),
IF(AND(E2="技能作业类",G2="B017A光学两班组10-白班"),ROUND(ABS(TIMEVALUE(TEXT(K2,"h:mm"))-TIME(19,30,0))*1440,0),
IF(AND(E2="技能作业类",G2="B017E光学两班组11-白班"),ROUND(ABS(TIMEVALUE(TEXT(K2,"h:mm"))-TIME(20,0,0))*1440,0),
IF(AND(E2="13薪",G2="B0DL1光学常白班1"),ROUND(ABS(TIMEVALUE(TEXT(K2,"h:mm"))-TIME(17,0,0))*1440,0),"班次格式错误"))))))

2.按分和秒显示 岗位在E列,班次在G列,下班打卡时间在K列

=IF(AND(E2="技能作业类",G2="B017B光学两班组10-夜班"),IF(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(7,30,0))*86400,60)=0,TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(7,30,0))*86400/60),"0分"),TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(7,30,0))*86400/60),"0分")&TEXT(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(7,30,0))*86400,60),"00秒")),
IF(AND(E2="技能作业类",G2="B013A光学两班组5-白班"),IF(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(19,30,0))*86400,60)=0,TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(19,30,0))*86400/60),"0分"),TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(19,30,0))*86400/60),"0分")&TEXT(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(19,30,0))*86400,60),"00秒")),
IF(AND(E2="技能作业类",G2="B013B光学两班组5-夜班"),IF(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(7,30,0))*86400,60)=0,TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(7,30,0))*86400/60),"0分"),TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(7,30,0))*86400/60),"0分")&TEXT(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(7,30,0))*86400,60),"00秒")),
IF(AND(E2="技能作业类",G2="B017A光学两班组10-白班"),IF(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(19,30,0))*86400,60)=0,TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(19,30,0))*86400/60),"0分"),TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(19,30,0))*86400/60),"0分")&TEXT(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(19,30,0))*86400,60),"00秒")),
IF(AND(E2="技能作业类",G2="B017E光学两班组11-白班"),IF(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(20,0,0))*86400,60)=0,TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(20,0,0))*86400/60),"0分"),TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(20,0,0))*86400/60),"0分")&TEXT(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(20,0,0))*86400,60),"00秒")),
IF(AND(E2="13薪",G2="B0DL1光学常白班1"),IF(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(17,0,0))*86400,60)=0,TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(17,0,0))*86400/60),"0分"),TEXT(INT(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(17,0,0))*86400/60),"0分")&TEXT(MOD(ABS(TIMEVALUE(TEXT(K2,"h:mm")) - TIME(17,0,0))*86400,60),"00秒")),"班次格式错误"))))))

8.柏拉图自动排序

数据如图:
在这里插入图片描述

=IF(COUNTIF($H$2:H2,H2)=1,RANK(H2,$H$2:$AN$2),RANK(H2,$H$2:$AN$2)+COUNTIF($H$2:H2,H2)-1)

总结

分享:
AA大书:接受可以让我面对所有的问题,当我感到焦虑的时候,通常是因为我发现自己不能接受生活中的一些人、地方、事情,直到我完全接受了它们,我才能获得心灵上的安宁。除非我完全的接受生活,否则我将无法获得快乐。我不需要再纠结这个世界上有什么需要改变而是关注我自己的态度需要发生怎样的改变;

相关文章:

  • 机器学习-入门-线性模型(1)
  • 【MCP】从一个天气查询服务带你了解MCP
  • 学习笔记:Qlib 量化投资平台框架 — FIRST STEPS
  • Linux系统之设置开机启动运行桌面环境
  • C++如何使用调试器(如GDB、LLDB)进行程序调试保姆级教程(2万字长文)
  • day51—二分法—x 的平方根(LeetCode-69)
  • 计算机基本理论与 ARM 相关概念深度解析
  • 一、I/O的相关概念
  • JavaScript之Webpack的模块加载机制
  • es数据导出
  • Unity Post Processing 小记 【使用泛光实现灯光亮度效果】
  • 第2讲、Tensor高级操作与自动求导详解
  • gradle eclipse [.project .classpath .settings]
  • 【有啥问啥】深入理解 Layer Normalization (LayerNorm):深度学习的稳定基石
  • 【物理学】电磁学——电动势
  • 说一下Drop与delete区别
  • Kafka批量消费部分处理成功时的手动提交方案
  • 页面需要重加载才能显示的问题修改
  • openstack热迁移、冷迁移、疏散
  • SQL注入原理及防护方案
  • 香港警务处高级助理处长叶云龙升任警务处副处长(行动)
  • 人社部:我国劳动力市场潜力足,韧性强
  • 国家发改委回应美加征关税:典型的单边主义霸凌做法
  • 宜家上海徐汇商场明天恢复营业,改造后有啥新变化?
  • 大学2025丨专访北邮校长徐坤:工科教育要真正回归工程本质
  • 又一名90后干部被查,已有多人倒在乡镇领导岗位上