索引匹配具有多个条件的唯一值?
Posted
技术标签:
【中文标题】索引匹配具有多个条件的唯一值?【英文标题】:Index match unique values with multiple criteria? 【发布时间】:2016-07-19 19:49:06 【问题描述】:我在一张纸上有以下用户列表,以及他们的年龄和运动兴趣:
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】:如果您确实想坚持使用公式,则可以在不满足条件时强制使用“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 是不必要的,因为任何不等于 0 的东西都不会被匹配,所以:-
=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)),"")
但你可能更喜欢颠倒逻辑并以更正常的方式解决它:-
=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)),"")
这些是数组公式,必须使用 CtrlShiftEnter
输入【讨论】:
以上是关于索引匹配具有多个条件的唯一值?的主要内容,如果未能解决你的问题,请参考以下文章