分隔逗号的索引和匹配函数

Index and Match Function for Separated Comma

我一直在尝试制作一个公式,其中 INDEX Sheet1.Rage("B2") 的值与 Sheet2.Rage("A2") 匹配,然后将结果粘贴到 Sheet2.Rage("B2")

我的匹配 ID 在 Sheet2.Rage("A2") 中用逗号分隔,就像这样 BFXI77,CTIB60,KWPX76

Sheet1.Rage("A2") 有这样的 ID BFXI77

所以我想对 Sheet2.Rage("B2") 中的结果求和三次。

我附上了一个 Sheet link 可能会有更好的帮助,我们将不胜感激。

https://docs.google.com/spreadsheets/d/1I9kiYaTnaIS-EZ3QpN-6Z063Y2CGsDZNeZvYO5Z0bRw/edit?usp=sharing

=INDEX(Sheet1!B2:B27,MATCH(A2,Sheet1!A2:A27,0),1)

在Excel中可以在数组公式中使用FILTERXML函数:

=SUM(INDEX(Sheet1!B:B,N(IF(1,MATCH(FILTERXML("<a><b>" & SUBSTITUTE(A2,",","</b><b>") & "</b></a>","//b"),Sheet1!A:A,0)))))

编辑后的数组公式按ctrl+shift+enter

确认

您需要用逗号分隔 3 个单独的 MatchId,然后分别对每个 MatchId 进行 VLOOKUP。

这有点棘手,因为如果没有足够的逗号,您会得到#VALUE!,因此第二次和第三次查找的每个公式都必须使用 ISERROR 检查。

像这样:在 sheet 2

B2 formula: comma 1 pos:  =FIND(",",A2)
C2 formula: comma 2 pos : =FIND(",",A2,B2+1)
D2 formula: lookup 1:     =LEFT(A2,IF(ISERROR(B2),LEN(A2),B2-1))
E2 formula: lookup 2:     =MID(A2,B2+1,IF(ISERROR(C2),LEN(A2),C2-1)-B2)
F2 formula: lookup 3:     =RIGHT(A2,LEN(A2)-C2)
G2 formula: value 1:      =VLOOKUP(D2,ItemTable,2,0)
H2 formula: value 2:      =IF(ISERROR(B2),,VLOOKUP(E2,ItemTable,2,0))
I2 formula: value 3:      =IF(ISERROR(C2),,VLOOKUP(F2,ItemTable,2,0))
J2 formula: Total:        =G2+H2+I2