將數據按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的第一參數無法使用數組,這個可以理解,畢竟每個值中分隔符個數不同會導致結果不是完整矩陣,但是該函數的第五參數為填充值,貌似好像又是為填補不存在的值所用,猜測未來版本更新后,會否加上這一功能……