结合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,""))