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

gen*_*ass 2 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)
Run Code Online (Sandbox Code Playgroud)

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

这很好,直到你得到2个相同价格/等级的耳机或其他什么.然后它开始返回错误的值.

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

AND(condition1, condition2) 
condition1 * AND(cndition2)
condition1 * condition2
Run Code Online (Sandbox Code Playgroud)

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

我希望我的问题很清楚,所以我上传了电子表格,以便了解我在说什么.

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

提前致谢

小智 18

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

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

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


bar*_*ini 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然后向下两列

这将找到价格和制造商的第一场比赛,并返回相关的型号/类型