小伙伴们好啊,今天和大家分享几个动态数组公式的典型用法。这些公式可以在Excel 2021以及最新的WPS表格中使用。只需输入一个公式,即可得到由多个元素构成的计算结果。
1、指定范围的随机不重复数
如下图,要根据A列的姓名,生成随机面试顺序。
B2单元格输入以下公式:
=SORTBY(SEQUENCE(12),RANDARRAY(12))
先使用SEQUENCE(12)生成1~12的连续序号。
再使用RANDARRAY(12)生成12个随机小数。
最后使用SORTBY函数,以随机小数为排序依据,对序号进行排序。
2、随机排序
如下图,希望对A列的应聘人员随机安排面试顺序。
先将标题复制到右侧的空白单元格内,然后在第一个标题下方输入公式:
=SORTBY(A2:B11,RANDARRAY(10),1)
RANDARRAY的作用是生成随机数数组,本例公式使用RANDARRAY(10),表示生成10个随机数的数组。
SORTBY函数的排序区域为A2:B11单元格中的数据,排序依据是按随机数数组升序排序。因为公式每次刷新所生成的随机数数组是不确定的,所以A2:B11单元格中的数据也会得到随机的排序效果。
3、自动增减的序号
如下图,在A2单元格输入以下公式,可以生成随着数据增加而变化的序号。
=SEQUENCE(COUNTA(B:B)-1)
COUNTA(B:B)-1部分,计算B列非空单元格的个数。减去1,得到不包含标题行在内的实际记录数。
SEQUENCE函数用于生成指定行列的序列号。本例中,生成序号的行数由COUNTA(B:B)-1的结果来指定。也就是B列有多少行数据,SEQUENCE函数就生成对应行数的序号。
4、随机分组
如下图所示,希望将A列的姓名随机分成4组。
C2单元格输入以下公式,每按一次F9键,就可以得到四组随机排列的名单:=IFERROR(INDEX(SORTBY(A2:A21,RANDARRAY(20)),SEQUENCE(10,4)),"")
公式中的SORTBY(A2:A21,RANDARRAY(20))部分,先使用RANDARRAY(20)得到20个随机小数,再使用SORTBY以随机小数为排序依据对A列姓名进行随机排序。
SEQUENCE(10,4)部分用来生成10行4列的序列号。
INDEX函数根据SEQUENCE生成的序列号,从随机排序后的姓名中返回对应位置的内容。
最后,使用IFERROR函数屏蔽可能出现的错误值。
5、在多列姓名中提取人员名单
如下图所示,需要从B~F列的值班名单中提取出员工名单。
H2单元格输入以下公式:
=UNIQUE(TOCOL(B2:F7,1))
首先使用TOCOL函数将B2:F7中的姓名转换为一列,TOCOL函数的第二参数使用1,表示忽略空白单元格。目前该函数仅支持Excel 365和最新版WPS表格用户使用。
接下来使用UNIQUE函数提取出不重复的记录。
6、按条件提取不重复记录
如下图所示,希望从左侧的值班名单中提取出「A区」的不重复记录。
F2单元格输入以下公式。
=UNIQUE(FILTER(C2:C14,A2:A14="A区"))
首先使用FILTER函数,筛选出所有A区的值班经理名单,再使用UNIQUE函数提取出不重复的记录。
今天的内容就是这些吧,祝各位一天好心情~~
图文制作:祝洪忠