excel函数与技巧:reduce+expand按要求扩展数列-趣帮office教程网

如图,前三行为源数据,要求拆分成黄色区域的样式,具体为e列指定拆分的行数,D列数据 拆分后要与行数相对应。C列保持不变。公式如下:

=DROP(REDUCE("",D1:D3,LAMBDA(x,y,VSTACK(x,IFERROR(HSTACK(OFFSET(y,,-1),y&SEQUENCE(OFFSET(y,,1)),SEQUENCE(OFFSET(y,,1),,1,0)),OFFSET(y,,-1))))),1)

公式思路:

本例公式的核心是指定列数如何变化为以1开始等差为1,行数由E列数据的数组,即1、2、3……,同时将它们与D列数据结合在一起:y&SEQUENCE(OFFSET(y,,1))

如何作一个起始值为1等差为0的数组,行数由E列数据的的数组:SEQUENCE(OFFSET(y,,1),,1,0))

如何得到一个行数为E列数据,值不变的数组:iferror(hstack(OFFSET(y,,-1),……),OFFSET(y,,-1))通过容错函数iferror来实现。