结合VLOOKUP,IF OR和STDEV

时间:2014-11-07 04:26:50

标签: excel if-statement vlookup standard-deviation

在Excel中,我有两列。一个有球员的名字,另一个有得分。像这样:

Player  Points
Foo     10
Bar     11
Foo     23
Test    9
Joe     1
Foo     2

我要做的是获得球员组合列表的积分标准差。

例如,如果我有这个清单:

Foo
Bar

我希望标准偏差为10,11,23和2,因为这些是与这两个玩家匹配的值。

我尝试过这个公式:

=STDEV(IF(OR(A:A="Foo",A:A="Bar"),B:B,""))

但是我得到了一个不同的答案,而不是我在它应该使用的个别数字上使用STDEV公式。

任何人都知道这是否可行?谢谢!

3 个答案:

答案 0 :(得分:1)

您可以使用以下数组公式(Ctrl + Shift + Enter):

=STDEV(IF((A:A="Foo")+(A:A="Bar")>0;B:B))

答案 1 :(得分:1)

您的公式不起作用,因为如果其参数的任何为真,OR将返回true。由于列表中至少有一个Foo,OR始终返回true,因此IF会返回B列中的所有值。

您可以输入:=OR(A:A="Foo")来查看。它会显示TRUE

另一种方法是进行子字符串搜索,例如FIND("|"&A:A&"|","|Foo|Bar|")

我使用管道(|)作为分隔符。

这将返回#VALUE!如果找不到,但在这些情况下您可以使用ISNUMBER返回false。

然后您的公式变为=STDEV(IF(ISNUMBER(FIND("|"&A:A&"|","|Foo|Bar|")),B:B))

以数组公式输入: Ctrl + Shift + 输入

在处理整个列时,数组公式可能非常慢。因此,您可能希望将数据限制在实际范围内 - 在此示例中为A2:A7和B2:B7:

enter image description here

答案 2 :(得分:1)

@Rick是对的,但更简单的方法来纠正" OR的行为是在其位置使用简单的+(需要是数组公式,因此使用 Ctrl + Shift + 输入) - >

=STDEV(IF((A:A="Foo")+(A:A="Bar"),B:B,""))