已知h列为所有水果列表,A列至B列为源数据,要将每个人的采购类型是水果的组合到一起,其他类型不进行组合,公式如下:
=REDUCE(A1:B1,TOCOL(A2:A33,3),LAMBDA(x,y,LET(
array,LOOKUP(ROW(A2:A33),ROW(A2:A33)/(A2:A33<>""),A2:A33),
fruit,TEXTJOIN("、",1,FILTER(B2:B33,(array=y)*(ISNUMBER(XMATCH(B2:B33,H1:H11))))),
other,FILTER(B2:B33,(array=y)*(ISERROR(XMATCH(B2:B33,H1:H11))),""),
new_array,VSTACK(HSTACK(y,other),HSTACK(y,fruit)),
new_array2,IFERROR(VSTACK(x,IFERROR(new_array,"")),""),
FILTER(q,INDEX(new_array2,,2)<>"")
)))
公式思路:本公式的主题结构为:reduce(filter(……由filter进行最后的过滤,筛选,去掉为空值的行。
显然filter并不是起到主要作用的行,起到主要作用的是前面的几个变量:
fruit,将水果类合并到一起,other,将非水果类的筛选出来。
new_array和new_array2起到合并到一起并对错误值进行修改的效果。
最后得到的new_array2才过滤掉空格。
评论 (0)