excel函数技巧:reduce+filter+lookup+textsplit提取、重构表格-趣帮office教程网

如图:A例为从微信中复制过来的信息,每条信息4行,要求根据B1:G1的标题要求,提取信息并放在对应的单元格中,公式如下:

=DROP(REDUCE("",SEQUENCE(9),LAMBDA(a,b,LET(

info_one,FILTER(SUBSTITUTE(A2:A37,":",":"),LOOKUP(ROW(A2:A37),ROW(A2:A37)/ISNUMBER(A2:A37),A2:A37)=b),

list,TEXTSPLIT(TEXTJOIN(",",1,IFERROR(TEXTAFTER(info_one,":"),"")),VSTACK("人",",")),

name,TEXTSPLIT(INDEX(list,,1),SEQUENCE(10)-1,,1),

num,TEXTSPLIT(INDEX(list,,1),name,,1),

concat,CONCAT(INDEX(list,,3)),

split_concat,TEXTSPLIT(concat,TEXTSPLIT(concat,VSTACK(":",SEQUENCE(10)-1),,1),,1),

time,CONCAT(IF(ISNUMBER(FIND(":",split_concat))*ISNUMBER(--split_concat),split_concat,"")),

VSTACK(a,HSTACK(name,num,INDEX(list,,2),INDEX(list,,3),time,INDEX(list,,4)))

))),1)

公式思路:先将每组客人的信息提取出来,再筛选,重构到一列,最后全部堆叠成表格。

整个函数的主题是reduce函数重构对应列,再堆叠。

重构列所需要的数据通过变量的形式进行逐个提取,虽然整体很多,但每个数据又不是很复杂。