在 Excel 中的公式中将字符串转换为可用数组

Converting string into usable arrays in formula in Excel

目标是如果在用户选择中找到Col A中的相应产品,则输出Col B中所有价格的总和。用户选择可以包括一个或多个产品,以逗号分隔。

我试过 2 个公式,但它们都不起作用,因为 SUMIF 中的条件未被视为数组。

=SUMPRODUCT(SUMIF(A:A,"{"""&SUBSTITUTE(D2,", ",""";""")&"""}",B:B))

=SUMPRODUCT(SUMIF(A:A,CHAR(34)&SUBSTITUTE(D2,", ",CHAR(34)&","&CHAR(34))&CHAR(34),B:B))

进一步说明:

只有一个单元格(D2)供用户选择,他们可以在其中指定他们要查询的产品,以逗号分隔。

使用拆分单元格,下面的公式会起作用,但这不是我想要的,因为我需要用户在一个单元格 (D2) 中键入他们的选择。 =SUMPRODUCT(SUMIF(A:A,D6:D16,B:B))

同样,将用户选择输入公式也可以,但这样做对用户来说太乏味了。 =SUMPRODUCT(SUMIF(A:A,{"Apple";"Pear";"Grapes"},B:B))

[编辑] 示例 Excel 文件:

[编辑 2]:为什么“{"""&SUBSTITUTE(D2,",",""";""")&"""}" 不能作为数组通过公式传递的任何线索,而 { "Apple";"Pear";"Grapes"} 工作正常吗?

这个矩阵公式似乎可以解决问题(按 control+shift+enter 确认):

=SUM(IF(ISERROR(FIND(A1:A4,D1)),0,B1:B4))