excel函数技巧:reduce+warprows+expand提取信息重构表格-趣帮office教程网

如图所示,1至6列为源数据,内容为订票信息,如何根据13列的要求,将表格重构为黄色区域的样式。公式如下:

=LET(x,REDUCE({"PO No.","Name","Passport","PassExp","Flight No.","Booking Date"},A2:A6,LAMBDA(x,y,IFERROR(VSTACK(x,HSTACK(y,WRAPROWS(OFFSET(y,,3,,12),3),EXPAND(OFFSET(y,,1),4,,OFFSET(y,,1)),EXPAND(OFFSET(y,,2),4,,OFFSET(y,,2)))),""))),

FILTER(x,INDEX(x,,2)<>0)

)

公式思路:本公式主体部分为reduce函数,通过vstackhsatck重构的方式重构表格,其中利用较多的是warprows和expand,wraprows将12列数据分成4行,expand函数将单一的列值进行复制,使行数与warprows函数得到的行数保持一致。

由于每一个日期的数据长度并不相同,所以最后要利用filter函数将核心数据如name为空为0的行过滤掉。