Excel 中的 INDEX MATCH 公式在某些单元格中返回错误结果而在其他单元格中返回正确结果

INDEX MATCH formula in Excel returning incorrect results in some cells and correct results in others

在开始之前我会说我不能 post 实际的电子表格,因为它包含机密数据。

我有一个电子表格来记录体育嘉年华数据并计算House和年龄冠军。

电子表格有 F 列“性别”、K 列“姓名”、L 列“年龄”和 N 列“分数”。 我正在使用以下公式生成每个年龄和性别组的冠军(例如 12 岁女性、12 岁男性、13 岁女性等)

=INDEX($K$2:$K$1000,MATCH(MAXIFS($N$2:$N$1000,$F$2:$F$1000,"F",$L$2:$L$1000,"12 "),$N$2:$N$1000,0))

其中“F”变为“M”,“12”变为各个年龄段。

公式 returns 对“F”、“12”、“16”和“17”的结果正确,但对“F”、“13”、“14”和“15”的结果不正确。和男性年龄冠军的类似组合。错误的结果'name'既是错误的性别也是错误的年龄。

我尝试了几种不同的 'fixes' 包括 text/number 替代方案和不同的公式来解决问题,但错误的结果不断出现。

如有任何帮助,我们将不胜感激。

使用“公式”功能区上的“公式求值”工具逐句查看 returns 结果“不正确”的公式。

您将看到 MAXIFS 解析的内容。您将看到 MATCH 解析为什么。

我假设 MAXIFS 返回的数字不是唯一值,因此 MATCH 函数会找到该值的 第一个 匹配项,这可能是错误的年龄组和性别。

如果您使用的是 Office 365,那么您将拥有新的动态数组功能。在这种情况下,您可以使用

=INDEX(FILTER(K2:K10,(F2:F10="m")*(L2:L10=13)),MATCH(MAX(FILTER(N2:N10,(F2:F10="m")*(L2:L10=13))),FILTER(N2:N10,(F2:F10="m")*(L2:L10=13)),0))

屏幕截图显示了正在运行的公式。单元格 Q2 显示您的公式,返回错误结果“girl4”,与 MAXIFS 返回的结果匹配。

单元格 Q3 具有使用过滤器的公式,它对匹配应用与 MAX 函数相同的过滤器。