0

我有这个,例如:

ColA   ColB  
X      1
Y      2
Z      3
X      4

我希望能够总结 B 列中的所有值

  • 列 A=X 或
  • A列=Y。

结果应该是 7 (1+2+4)。

我这样做了:

SUM(IF(COUNTIF(A:A,"X"),VLOOOKUP("X",A:B,2,),"0"), IF(COUNTIF(A:A,"Y"),VLOOOKUP("Y",A:B,2,),"0"))

出于某种原因,它返回 3。由于某种原因,它没有添加 X 的第二个值。

任何想法为什么?

谢谢!

4

2 回答 2

0

您的公式返回错误(o 太多!)但带有VLOOKUPs 3。由于问题不在于Y,因此通过取出公式的那部分来简化问题:

=IF(COUNTIF(A:A,"X"),VLOOKUP("X",A:B,2,),"0")  

这导致1. 但也是如此:

=VLOOKUP("X",A:B,2,)  

因此COUNTIF(A:A,"X")2因为有两个实例而返回X)实际上并没有帮助。替换为7, or 103or 5=5- 没有区别。

您显然知道,普通的 VLOOKUP 一旦找到符合其“规则”的第一个实例,就会停止“搜索”,但不幸的2是,在找到第一个匹配项后,插入带有 COUNTIF 的“VLOOKUP”不足以“告诉”VLOOKUP,现在去寻找第二个也是”。

因此,您所表达的问题的答案是“是的。VLOOKUP 无法通过 =COUNTIF 函数识别多个实例。”

于 2014-01-07T05:38:42.930 回答
0
=SUMPRODUCT(((A2:A5="X")+(A2:A5="Y"))*(B2:B5))

如果您选择公式的一部分并按 Ctrl+=,您可以看到它是如何计算的。

=SUMPRODUCT((({TRUE;FALSE;FALSE;TRUE})+({FALSE;TRUE;FALSE;FALSE}))*(B2:B5))

现在,当这两个数组相加时,TRUE 被强制为 1,FALSE 被强制为零。

=SUMPRODUCT(({1;1;0;1})*(B2:B5))

得到的 1 和 0 数组乘以来自 B2:B5 的数组。

=SUMPRODUCT({1;2;0;4})

并总结为7。

于 2012-11-15T17:10:20.563 回答