效率神器:5个高效Excel动态数组公式
小伙伴们好啊,今天和大家分享一组简单高效的函数公式,点滴积累,也能提高工作效率。
1、两列转四列
如下图,希望将左侧数据分成4列显示。
D2单元格公式为:
=WRAPROWS(TOCOL(A2:B11),4)
先使用TOCOL(A2:B11)函数将左侧数据转换为1列。再使用WRAPROWS函数将一列数据转换为4列。
2、一列转多列
如下图所示,为了便于打印,要将A列中的姓名,转换为多行多列。
D6单元格输入以下公式,按回车:
=INDEX(A:A,SEQUENCE(E3,E4,2))&""
先使用SEQUENCE函数,根据E3和E4单元格中指定的行列数,得到一个从2开始的多行多列的序号。再使用INDEX函数返回A列对应位置的内容。
3、每列最大值求和
如下图,希望计算每个人的最高成绩之和。
H2输入以下公式:
=SUM(BYCOL(B2:F6,LAMBDA(x,MAX(x))))
LAMBDA函数将B2:F6区域中的每一列定义为x,再用MAX函数分别计算出x的最大值。
在新版本中也可以简化LAMBDA部分,写成语法糖的形式:
=SUM(BYCOL(B2:F6,MAX))
4、计算最多连胜次数
如下图所示,B列是某联赛的比赛成绩,希望计算出最多连胜场次。
=MAX(LEN(TEXTSPLIT(CONCAT(IF(B2:B12="胜",1,0)),0)))
IF函数部分,判断B列胜负,胜返回1,负返回0。如下图所示。
接下来使用CONCAT函数将这些内容连接到一起,结果为:
“00111001011”
再使用TEXTSPLIT函数,用0做为间隔符进行拆分,拆分结果为:
……111…1…11
最后用LEN函数计算出以上结果的字符数,再用MAX函数计算出最多的字符数,其结果就是最大连胜次数。
5、按指定次数重复显示
如下图所示,希望根据B列的次数来重复显示A列标签内容。
C2单元格输入以下公式:
=TEXTSPLIT(CONCAT(REPT(A2:A8&"/",B2:B8)),,"/",1)
A2:A8&"/"部分,先将A2:A8单元格中的每一项分别与斜杠进行连接,再用REPT函数,根据B列的数字来重复显示这些内容。
接下来使用CONCAT函数将这些内容连接到一起:
"半成品区/半成品区/半成品区/原料区/原料区/原料区/……/暂存区/"
最后使用TEXTSPLIT函数,以斜杠为间隔符号,将以上字符串进行拆分。