如果相邻列满足特定条件,有条件地添加一列的值?
Conditionally add values of one column if a neighboring column meets certain criteria?
我有两列,A 和 B。A 包含单词的字符串组合('word1 word2'、'word3'、'word1 word4' 等),B 列包含一个数字。
然后我有一个单独的 sheet,带有 C 列,其中包含原始 A 列中出现的每个唯一单词。我想要做的是将 C 列单词出现在 A 中匹配行中的所有 B 列值相加,并将其放入 D 列中。
我的问题是我在对范围执行 SUMIF 时遇到问题。我知道我可以使用 ISNUMBER(SEARCH()) 来确定我的列 C 字符串是否包含在列 A 中,并且我知道我可以根据是否在 A 中搜索 C 来 SUMIF 列 B,但我不能应用它通过这种方式,我得到了一个可以应用于整个 D 列的公式,因为 C 中的单词与该单词在 A 中出现的行不匹配。另外,当我搜索时,SEARCH() 似乎中断了一个数组,我想因为它不再是一个字符串所以我得到类型不匹配?
我可以根据需要澄清,我知道这有点令人困惑。非常感谢您的帮助。
例子:这里是Sheet 1.A是字符串,B是Int
A | B
word1 word2 | 1
word2 word3 | 5
word4 word1 | 10
和Sheet 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 值。
例如:单词组合在A1:A20
,
B1:B20
中的随机值,以及 C1:C10.
中的唯一单词列表
输入数组公式 (
输入Ctrl+Shift+Enter
而不仅仅是 Enter):
=SUM(IF(ISERR(FIND(C1,$A:$A)),0,SIGN(FIND(C1,$A:$A))*$B:$B))
在D1
和drag/copy下。
编辑
假设一个词不能成为另一个词的一部分,
像 night
和 knight
,在这种情况下 FIND(...)
应替换为
FIND(" "&C1&" "," "&$A:$A&" ")
即D1
中的数组函数改为
=SUM(IF(ISERR(FIND(" "&C1&" "," "&$A:$A&" ")),0,SIGN(FIND(" "&C1&" "," "&$A:$A&" "))*$B:$B))
将 SUMIF 与通配符一起使用:
=SUMIF(Sheet1!A:A,"*" & C1 & "*",Sheet1!B:B)
我有两列,A 和 B。A 包含单词的字符串组合('word1 word2'、'word3'、'word1 word4' 等),B 列包含一个数字。
然后我有一个单独的 sheet,带有 C 列,其中包含原始 A 列中出现的每个唯一单词。我想要做的是将 C 列单词出现在 A 中匹配行中的所有 B 列值相加,并将其放入 D 列中。
我的问题是我在对范围执行 SUMIF 时遇到问题。我知道我可以使用 ISNUMBER(SEARCH()) 来确定我的列 C 字符串是否包含在列 A 中,并且我知道我可以根据是否在 A 中搜索 C 来 SUMIF 列 B,但我不能应用它通过这种方式,我得到了一个可以应用于整个 D 列的公式,因为 C 中的单词与该单词在 A 中出现的行不匹配。另外,当我搜索时,SEARCH() 似乎中断了一个数组,我想因为它不再是一个字符串所以我得到类型不匹配?
我可以根据需要澄清,我知道这有点令人困惑。非常感谢您的帮助。
例子:这里是Sheet 1.A是字符串,B是Int
A | B
word1 word2 | 1
word2 word3 | 5
word4 word1 | 10
和Sheet 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 值。
例如:单词组合在A1:A20
,
B1:B20
中的随机值,以及 C1:C10.
中的唯一单词列表
输入数组公式 (
输入Ctrl+Shift+Enter
而不仅仅是 Enter):
=SUM(IF(ISERR(FIND(C1,$A:$A)),0,SIGN(FIND(C1,$A:$A))*$B:$B))
在D1
和drag/copy下。
编辑
假设一个词不能成为另一个词的一部分,
像 night
和 knight
,在这种情况下 FIND(...)
应替换为
FIND(" "&C1&" "," "&$A:$A&" ")
即D1
中的数组函数改为
=SUM(IF(ISERR(FIND(" "&C1&" "," "&$A:$A&" ")),0,SIGN(FIND(" "&C1&" "," "&$A:$A&" "))*$B:$B))
将 SUMIF 与通配符一起使用:
=SUMIF(Sheet1!A:A,"*" & C1 & "*",Sheet1!B:B)