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