拆分成行(Excel函数集团)

将数据按B列中的斜杠拆分,结果如图右表:

 

E列使用公式:

=TEXTSPLIT(TEXTJOIN("/",,B2:B4),,"/")

公式先使用TextJoin函数,将B2:B4全部按斜杠合并,变成“A/BB/CCC/甲/乙/XX/丙丁”

再使用TextSplit函数,将合并的结果按斜杠拆分,分隔符是第三参数,所以结果形成一列。

D列使用公式:

=SUMIF(B2:B4,"*"&E2#&"*",A2:A4)

想要一个公式一步到位也可以:

 

=VSTACK(A1:B1,LET(a,TEXTSPLIT(TEXTJOIN("/",,B2:B4),,"/"),HSTACK(SUMIF(B2:B4,"*"&a&"*",A2:A4),a)))

 

公式中用到以下M365“硬塞的”版最新函数:

拆分函数:=TEXTSPLIT(字符串, 分列分隔符, 分行分隔符, 是否忽略空单元格, 填充值)

纵向堆叠:=VSTACK(数组1, 数组2,… , 数组254)

横向堆叠:=HSTACK(数组1, 数组2,… , 数组254)

 

PS,经测试,TextSplit的第一参数无法使用数组,这个可以理解,毕竟每个值中分隔符个数不同会导致结果不是完整矩阵,但是该函数的第五参数为填充值,貌似好像又是为填补不存在的值所用,猜测未来版本更新后,会否加上这一功能……

posted @ 2022-03-31 14:00  熬肥妖  阅读(787)  评论(0编辑  收藏  举报