这对每个人来说都是一个挑战。我正在寻找一份得分低于 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 公式中使用分号,则需要将逗号替换为分号,将分号替换为逗号)