【问题标题】:Conditionally add values of one column if a neighboring column meets certain criteria?如果相邻列满足某些条件,有条件地添加一列的值?
【发布时间】:2017-05-15 17:02:52
【问题描述】:

我有两列,A 和 B。A 包含单词的字符串组合('word1 word2'、'word3'、'word1 word4'等),而 B 列包含一个数字。

然后我有一个单独的工作表,其中包含 C 列,其中包含原始 A 列中出现的每个唯一单词。我想要做的是将 C 列单词出现在 A 的匹配行中的所有 B 列值相加,并将其放在 D 列中。

我的问题是在范围上执行 SUMIF 时遇到问题。我知道我可以使用 ISNUMBER(SEARCH()) 来确定我的列 C 字符串是否包含在列 A 中,并且我知道我可以根据是否在 A 中搜索 C 来 SUMIF 列 B,但我不能应用它以这样一种方式,我得到了一个公式,我可以将其应用于整个 D 列,因为 C 中的单词与该单词在 A 中出现的位置不匹配。此外,当我搜索时,SEARCH() 似乎中断了一个数组,我想是因为它不再是一个字符串,所以我得到类型不匹配?

我可以根据需要澄清,我知道这有点令人困惑。非常感谢您的帮助。

示例:这是工作表 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 值。

【问题讨论】:

  • 一些测试数据和预期结果将有助于澄清您的问题。
  • 是的,请发布一些测试数据和预期输出。此外,在带有 Col C 的单独表格中 - 比如说 C1word1。您想对原始工作表中的数字求和,但其中A1word1?
  • 在正文中添加了示例数据。谢谢!

标签: arrays excel sumifs


【解决方案1】:

将 SUMIF 与通配符一起使用:

=SUMIF(Sheet1!A:A,"*" & C1 & "*",Sheet1!B:B)

【讨论】:

    【解决方案2】:

    例如:单词组合在A1:A20B1:B20 中的随机值,以及 C1:C10. 中的唯一单词列表 输入数组公式 ( 键入 Ctrl+Shift+Enter 而不仅仅是 Enter):

    =SUM(IF(ISERR(FIND(C1,$A$1:$A$20)),0,SIGN(FIND(C1,$A$1:$A$20))*$B$1:$B$20))
    

    D1 中并向下拖动/复制。

    编辑

    假设一个词不能成为另一个词的一部分, 比如nightknight,在这种情况下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))
    

    【讨论】:

    • 这正是我一直在寻找的,而且效果很好。谢谢。
    猜你喜欢
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多