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

系列文章目录

文章目录


前言

一、excel公式应用

1.rand函数

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

python 复制代码
选中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函数随机排序

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

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

3.rand函数提取数据

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

python 复制代码
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。
python 复制代码
=SUBSTITUTE(ADDRESS(1,COLUMN(B1),2)"1","")

6.MAX组合函数

python 复制代码
=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.需要按照岗位类型、班次统计下班打卡时间与规定下班时间的时间间隔

python 复制代码
=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列

python 复制代码
=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.柏拉图自动排序

数据如图:

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

相关推荐
杜子腾dd7 小时前
7.Excel:单元格格式
大数据·自动化·excel
桦012 小时前
Linux[配置vim]
linux·vim·excel
lynn-6615 小时前
JAVA-使用Apache POI导出数据到Excel,并把每条数据的图片打包成zip附件项
java·apache·excel
杜子腾dd20 小时前
8.Excel:数据验证和下拉列表
数据分析·excel
乐享极致20 小时前
Python 数据可视化进阶:精准插入图表到指定 Excel 工作表
python·信息可视化·excel
杜子腾dd1 天前
10.Excel:快速定位目标值
数据分析·excel
春眠不觉晓♞1 天前
使用多线程快速向Excel中快速插入一万条数据案例
java·学习·excel
蜗牛沐雨2 天前
Pandas 数据导出:如何将 DataFrame 追加到 Excel 的不同工作表
python·excel·pandas
JavaDog程序狗2 天前
【java】easypoi导出excel单元格,填充动态下拉列
java·spring boot·excel