excel函数技巧:reduce+行列索引实现数据变形-趣帮office教程网

如图:源数据中将每个人的每个项目都放在一行,如何把它们拆成每个数据一行呢?公式如下:

=LET(m,REDUCE(B10:F10, C11:F13,LAMBDA(x,y,VSTACK(x,IF(y=1,HSTACK(INDEX(B11:B13,ROW(y)-10,1),IF(SEQUENCE(,4)=COLUMN(y)-2,1,"")))))),

FILTER(m,INDEX(m,,1)<>FALSE))

公式思路:这个题目其实就是考量索引的使用,主要判断条件就是得到引用单元格的行号和列号,也就是变量x是否为1,位于四个单元格中的哪一行,便于引用姓名;哪一列,便于引用1作为数值,其余形成空值。这样就行成了由姓名、1、空格组成的一行数据。

由于变量y是一个二维区域数组,它会从根据先行再列的顺序一个一个的引用数据进行决断,所有空格也会生成一行,就需要使用filter函数将全部是空格的单元格过滤。

通过这个案例我们可以看到,经过reduce生成的表格,具了表头字段,数据,基本具备了二维表格的特征。