Excel数组公式IF(多重条件)

4
在我的电子表格中,比较耳机时,我们的指导原则基本上是使用尽可能多的不同公式。因此,作为电子表格的一部分,我希望能够显示每个制造商的最贵的耳机,每个制造商的最便宜的耳机,每个制造商的最佳评级等等...到目前为止,我已经能够得到一些基本可用的数组公式。
例如,这个公式可以获得“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是“森海塞尔”预先计算的最高价格。

这很好用,直到您得到两个价格/评级或其他相同的耳机。然后它开始返回错误的值。

因此,我尝试了在互联网上找到的各种解决方案,例如

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

但是似乎这些方法都无法在数组公式中正常工作。我会得到#N/A或#VALUE等各种错误。 因此,基本上我想知道如何修改我的公式,甚至是一个全新的公式,来检查最低价格和正确的制造商。 希望我的问题很清楚,所以我上传了电子表格,以便更好地理解我在谈论什么。

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

提前感谢


这个问题是否也应该有一个 [tag:homework] 标签? - Andrew Leach
2个回答

20

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

=if((条件A)*(条件B)*……;真;假)

请确保将条件放在括号中。


这解决了在同一行基于多个值进行过滤而不使用FILTER函数的问题。在此链接中,有一个仅包含IF函数内部条件的示例。 - Kernel

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,然后向下复制两列 这将查找价格和制造商的第一个匹配项,并返回相关的型号/类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接