我有两列,A和B. A包含单词的字符串组合(' word1 word2',' word3',' word1 word4'等) ,B列包含一个数字。
然后,我有一个单独的工作表,其中包含C列,其中包含原始列A中出现的每个唯一单词。我想要做的是将所有列B值加起来,其中列C字出现在A的匹配行中,并将其放在D列中。
我的问题是我在范围上做SUMIF时遇到了麻烦。我知道我可以使用ISNUMBER(SEARCH())来确定我的列C字符串是否包含在A列中,并且我知道我可以根据是否在A中搜索C来使用SUMIF B列,但我不能以这样的方式应用它,我得到一个公式我可以应用到整个列D,因为C中的单词不匹配该单词出现在A中的行。此外,SEARCH()似乎在我和#39;我正在搜索一个数组,我认为因为它不再是一个字符串所以我得到类型不匹配?
我可以根据需要澄清,我知道这有点令人困惑。非常感谢您的帮助。
示例:此处的工作表1. A是字符串,B是Int
A | B
word1 word2 | 1
word2 word3 | 5
word4 word1 | 10
和表2。
C | D
word1 | 11 (because row 1 and row 3 both contain word1)
word2 | 6 (row 1 and row 2 contain word2)
word3 | 5 (only row 2 contains word3)
word4 | 10 (only row 3 contains word4)
我试图填充D. SumIf中断,因为我无法通过所有A列搜索C中的特定单词,并且仅当C包含在A中时才取出B值。
答案 0 :(得分:1)
例如:单词组合位于A1:A20
,
B1:B20
中的随机值以及C1:C10.
中的唯一字词列表
输入数组公式(
输入 Ctrl + Shift + 输入
而不只是输入):
=SUM(IF(ISERR(FIND(C1,$A$1:$A$20)),0,SIGN(FIND(C1,$A$1:$A$20))*$B$1:$B$20))
在D1
中并拖放/复制。
修改强>
假设一个词不能成为另一个词的一部分,
例如night
和knight
,在这种情况下FIND(...)
应该替换为
FIND(" "&C1&" "," "&$A$1:$A$20&" ")
这是D1
中的数组函数更改为
=SUM(IF(ISERR(FIND(" "&C1&" "," "&$A$1:$A$20&" ")),0,SIGN(FIND(" "&C1&" "," "&$A$1:$A$20&" "))*$B$1:$B$20))
答案 1 :(得分:1)