Excel-如何对连接的子字符串求和

Excel-如何对连接的子字符串求和,excel,excel-formula,Excel,Excel Formula,我有一个问题,我正试图在excel中解决,但我只能找到相反问题的解决方案 我有一个类似于以下格式的数据列表: A | 10 B | 15 C | 12 D | 17 我希望能够将这些字符串中的任何一个组成一个字符串,然后求和。结果表如下所示: A | 10 A, B | 25 A, C | 22 A, C, D | 39 在我所能找到的所有方法中,我无法找到一种方法来检查字符串是否包含其他作为子字符串的字符串,然后在总数中添加一

我有一个问题,我正试图在excel中解决,但我只能找到相反问题的解决方案

我有一个类似于以下格式的数据列表:

A  | 10
B  | 15
C  | 12
D  | 17
我希望能够将这些字符串中的任何一个组成一个字符串,然后求和。结果表如下所示:

A         |   10
A, B      |   25
A, C      |   22
A, C, D   |   39

在我所能找到的所有方法中,我无法找到一种方法来检查字符串是否包含其他作为子字符串的字符串,然后在总数中添加一个相关值(如果是真的)。

一种方法,使用
SUMPRODUCT
SEARCH

=SUMPRODUCT(ISNUMBER(SEARCH($A$1:$A$4,E1))*$B$1:$B$4)


但在匹配子字符串时一定要注意陷阱;例如,
E1
中的
AA
F1
中仍然会返回
10
,除了@BigBen之外,您还可以在cell
F1
中尝试:

=SUMPRODUCT(SUMIF(A$1:A$4,FILTERXML("<t><s>"&SUBSTITUTE(E1,", ","</s><s>")&"</s></t>","//s"),B$1:B$4))
=SUMPRODUCT(SUMIF(A$1:A$4,FILTERXML(“&SUBSTITUTE(E1,”,“,”)&“/s)”,B$1:B$4))

这应该可以消除可能的误报。

Dang-这个公式比我想象的要简单得多。美好的是 啊它可能有一些误报。是的,我相信这假设列A是单字符串,对吗?因此,如果在
列a
中有
AA
的值,则相关值将被错误地添加到
a
哇,谢谢!我已经搜索了一个小时左右,只有当我要查找的字符串是较长字符串的子字符串时,我才能找到要求和的内容。@urderboy-不一定是单个字符串,只是一行的文本不能同时是另一行文本的一部分。所以“foo”和“foobar”,“car”和“care”不起作用,“A”和“AA”也不起作用。子字符串的问题。哦,是的。。。非常好,我想会有一个FILTERXML版本,但这不是我的专长。。。我只是太懒了。我自己终于要开始使用它了:-)到底在哪里??