Excel数组公式IF(多个标准)

时间:2012-05-10 19:15:21

标签: excel excel-2007 excel-formula

在我的电子表格中,比较耳机,我们的指示基本上是使用尽可能多的不同公式。

因此,作为电子表格的一部分,我希望能够展示最昂贵的耳机每个制造商,每个制造商最便宜,每个制造商最佳评级等... 到目前为止,我已经能够得到一些主要工作的数组公式。

例如,此公式适用于以最高价格获得制造商“Sennheiser”的模型

=INDEX($Data.$B$5:$L$32,SMALL(IF($Data.$E$5:$E$32 = $Sheet2.D17, ROW($Data.$B$5:$E$32) - ROW($Data.$B$5) + 1, ROW($Data.$E$32) + 1), 1), 2)

E列是价格列,D17是“sennheiser”的预先计算的最高价格

这样可以正常工作,直到你得到2个具有相同价格/等级的耳机。然后它开始返回错误的值。

所以我尝试了在互联网上找到的各种解决方案,比如

AND(condition1, condition2) 
condition1 * AND(cndition2)
condition1 * condition2

但由于某些原因,这似乎都不适用于数组公式。我得到#N / A或#VALUE以及其他各种错误。 所以基本上我想知道如何修改我的公式,甚至是一个全新的公式,以检查最低价格和正确的制造商。

我希望我的问题很明确,所以我上传了电子表格,以便了解我所说的内容。

http://dl.dropbox.com/u/18816338/Stats%20Analysis%20%20%281%29.xlsm

提前致谢

2 个答案:

答案 0 :(得分:17)

您还可以使用简单的公式:

= if((Condition_A)*(Condition_B)* ...; true; false)

确保将条件置于括号之间。

答案 1 :(得分:7)

通常AND在这里不起作用,因为AND返回单个结果而不是数组....但是*应该没问题,即在B3中尝试这个公式

=INDEX(Data!C$5:C$32,MATCH(1,(Data!$E$5:$E$32=$D3)*(Data!$B$5:$B$32=$A3),0))

使用CTRL + SHIFT + ENTER确认并复制到C3然后向下两列

这将找到价格和制造商的第一个匹配并返回相关的型号/类型