我有一份包含各种价格的物品清单。我有一个函数,它创建一个数组来显示某项物品出现的所有实例:
A B C
1 Oranges 10 Yes
2 Apples 12 No
3 Pears 14 Yes
4 Grapes 18 No
5 Apples 19 Yes
6 Oranges 16 No
7 Apples 11 No
使用数组
{=IFERROR(INDEX($B$1:$B$7, SMALL(IF($A$10=$A$1:$A$7, ROW($A$1:$A$7)-ROW($A$1)+1), ROW(1:1))), "")}
如果我在单元格 A10 中输入 Apple,则数组将返回 apple 的每个实例。
12
19
11
但是,我只想返回根据 C 列得出的每个项目,因此返回所有答案为“是”的 Apple。我尝试过以下方法:
{=IFERROR(INDEX($B$1:$B$7, SMALL(IF($A$10=$A$1:$A$7, IF("Yes"=$C$1:$C$7, ROW($A$1:$A$7)-ROW($A$1)+1, ROW(1:1))))), "")}
但是我一直收到错误,我为该函数输入的参数太少了。
答案1
=IFERROR(INDEX($B$1:$B$7, SMALL(IF(($A$10=$A$1:$A$7)*("Yes"=$C$1:$C$7), ROW($A$1:$A$7)-ROW($A$1)+1,""), ROW(1:1))), "")
这对您的数据有效。
我没有使用嵌套的 IF,而是包含了 AND 关系,还使用了固定括号。