结合VLOOKUP,IF OR和STDEV

在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公式。

任何人都知道这是可能的吗? 谢谢!

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

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

您的公式不起作用,因为如果其任何参数为真,则OR返回true。 由于列表中至less有一个Foo,因此OR总是返回true,所以IF返回B列中的所有值。

你可以input: =OR(A:A="Foo") 。 它会显示TRUE

另一种方法是执行子stringsearch,例如FIND("|"&A:A&"|","|Foo|Bar|")

我正在使用pipe道(|)作为分隔符。

这将返回#VALUE! 如果没有find,但在这种情况下可以使用ISNUMBER返回false。

你的公式变成=STDEV(IF(ISNUMBER(FIND("|"&A:A&"|","|Foo|Bar|")),B:B))

input数组公式: Ctrl + Shift + Enter

在整个列上工作时,数组公式可能会非常慢。 所以你可能想限制数据的实际范围 – 在这个例子中的A2:A7和B2:B7:

在这里输入图像说明

@Rick是正确的,但一个简单的方法来“纠正” OR的行为是使用简单的+在它的地方(需要是数组公式,所以用Ctrl + Shift + Enterinput ) – >

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