创建具有多个匹配条件的列表

创建具有多个匹配条件的列表

这对每个人来说都是一个挑战。我正在寻找一份得分低于 10 分或投篮命中率低于 41% 的球员名单。此外,在单独的图表中,我正在寻找每个联盟的前 3 名得分手。

例如篮球统计数据

篮球统计

另外,我附上了一份Google 文档链接所以每个人都可以尝试一下。如果有人能解决这个问题,那将是一个很大的帮助。谢谢。

答案1

使用传统数组公式,您可以使用以下内容:

在单元格 F3 中(这是一个数组公式,必须使用 Ctrl+Shift+Enter 进行确认)

=IFERROR(INDEX(A$2:A$31,SMALL(IF(($C$2:$C$31<10)+($D$2:$D$31<41),ROW($A$1:$A$30)),ROW(A1))),"")

复制到第 I 列并向下复制到第 31 行。

在单元格 K3 中(这是一个数组公式,必须使用 Ctrl+Shift+Enter 进行确认)

=INDEX($A$2:$A$31,MATCH(K$2&LARGE(IF($B$2:$B$31=K$2,$C$2:$C$31),ROW(A1)),INDEX($B$2:$B$31&$C$2:$C$31,0),0))

复制到 M3 并复制到以下两行。

在此处输入图片描述

** 编辑:** 如果每个联赛都有不同的条件,您可以将这些条件放入 IF() 语句中。在数组公式中,您不能使用 AND() 或 OR() 公式来组合条件。相反,每个条件将放在括号内,并使用*AND 和+OR 组合。

文字逻辑是

((League=A) AND ((PTS<10) OR (FG<41))) OR
((League=B) AND ((PTS<15) OR (FG<50))) OR
((League=C) AND ((PTS<15) OR (FG<50)))

在公式中

(($B$2:$B$31="A")*(($C$2:$C$31<10)+($D$2:$D$31<41)))+
(($B$2:$B$31="B")*(($C$2:$C$31<15)+($D$2:$D$31<50)))+
(($B$2:$B$31="C")*(($C$2:$C$31<15)+($D$2:$D$31<50)))

完整的公式如下(记住 Ctrl-Shift-Enter)

=IFERROR(INDEX(A$2:A$31,SMALL(IF(
(($B$2:$B$31="A")*(($C$2:$C$31<10)+($D$2:$D$31<41)))+
(($B$2:$B$31="B")*(($C$2:$C$31<15)+($D$2:$D$31<50)))+
(($B$2:$B$31="C")*(($C$2:$C$31<15)+($D$2:$D$31<50))),
ROW($A$1:$A$30)),ROW(A1))),"")

相同的条件逻辑和架构也适用于我的其他答案中的动态数组过滤器()函数。

答案2

这是新的 Excel 动态数组函数的一个典型示例,目前仅在 Office Insider 版本中可用。

一 (一!) 单元格 F3 中的公式如下:

=FILTER($A$2:$D$31,($C$2:$C$31<10)+($D$2:$D$31<41))

它会自动向右向下延伸。

单元格 K3 中的另一个公式。我将单元格 K2 更改为 M2,使其具有与 B 列相同的文本。

=INDEX(SORTBY(FILTER($A$2:$A$31,$B$2:$B$31=K2),FILTER($C$2:$C$31,$B$2:$B$31=K2),-1),{1;2;3})

这已被复制到 L3 和 M3,但没有复制下来任何内容。

(注意:如果您的系统在 Excel 公式中使用分号,则需要将逗号替换为分号,将分号替换为逗号)

在此处输入图片描述

相关内容