索引是否符合多个条件的唯一值?

时间:2016-03-31 11:24:41

标签: excel indexing match

我在1张纸上有以下用户列表,以及他们的年龄和运动兴趣:

A       18        Football
B       19        Rugby
C       18        Football
D       50        Dance
D       21        Rugby
A       25        Football

然后我在表2上有一个索引匹配数组公式,它正在查找我的用户列表并在表单1上输出它们。

公式:

 =IFERROR(INDEX('Activity Data'!$A$2:$A$5000, MATCH(0, COUNTIF($B$36:B36,'Activity Data'!$A$2:$A$5000), 0)),"")

这为我提供了一个独特的用户列表:

A
B
C
D

但是,我只想查看那些18岁并且对足球感兴趣的用户。

如何为此公式添加多个匹配条件以获得所需的结果?

提前致谢

1 个答案:

答案 0 :(得分:1)

如果你确实想要坚持一个公式,你可以强迫一个' 1'当标准未达到如下时: -

=IFERROR(INDEX('Activity Data'!$A$2:$A$10, MATCH(0, SIGN(COUNTIF($C$36:C36,'Activity Data'!$A$2:$A$10)+('Activity Data'!$C$2:$C$10<>"Football")+('Activity Data'!$B$2:$B$10<>18)), 0)),"")

(我只在10行测试,但应该适用于任何范围)

实际上已经认识到SIGN是不必要的,因为任何不等于零的东西都不会匹配,所以: -

=IFERROR(INDEX('Activity Data'!$A$2:$A$10, MATCH(0, COUNTIF($C$36:C36,'Activity Data'!$A$2:$A$10)+('Activity Data'!$C$2:$C$10<>"Football")+('Activity Data'!$B$2:$B$10<>18), 0)),"")

enter image description here

但你可能更喜欢颠倒逻辑并以更正常的方式解决它: -

=IFERROR(INDEX('Activity Data'!$A$2:$A$10, MATCH(1, (COUNTIF($C$36:C36,'Activity Data'!$A$2:$A$10)=0)*('Activity Data'!$C$2:$C$10="Football")*('Activity Data'!$B$2:$B$10=18), 0)),"")

这些是数组公式,必须使用 Ctrl Shift 输入

输入