【问题标题】:Returning the kth of multiple matches返回多个匹配的第 k 个
【发布时间】:2026-02-06 10:35:01
【问题描述】:

在 Excel for Mac 2011 中,我正在尝试创建一个引用 A1:B5 中数据的表(在列 D-G 中)。我要E1 搜索列A 并报告与第一个匹配对应的列B 中的数据; F1 搜索列A 并报告第二个匹配项; G1 第三场比赛,等等。VLOOKUP 将解决E1 的问题,但据我所知,无法处理第一场比赛之后的任何事情。

这是我在其他帮助网站上找到的公式:

=INDEX($B$1:$B$5,SMALL(IF($A$1:$A$5=$D$1,ROW($A$1:$A$5)-MIN(ROW($A$1:$A$5))+1,""),COLUMN(A1)))

这对E1 非常有效,但会导致单元格F1 中出现#NUM! 错误。我在另一个单元格中输入了以下公式,得到了 1 的值,这让我相信我的公式只能找到一个匹配项:

=MAX((IF($A$1:$A$5=$D$1,ROW($A$1:$A$5)-MIN(ROW($A$1:$A$5))+1,"")))

我不知道第一个公式哪里出错了。如果有人有任何想法或其他方法可以做到这一点,将不胜感激!

【问题讨论】:

    标签: excel excel-2011


    【解决方案1】:

    你需要修改如下:

    =INDEX($B$1:$B$5;SMALL(IF($A$1:$A$5=$D$1;ROW($A$1:$A$5)-MIN(ROW($A$1:$A$5))+1;"");2))
    

    在 COLUMN(A1) 之前,您需要输入 kth 元素的数量。
    如果数组中没有 kth 位置,则您有一个 NUM#...
    在这种情况下,您需要使用:

    =IFERROR(INDEX($B$1:$B$5;SMALL(IF($A$1:$A$5=$D$1;ROW($A$1:$A$5)-MIN(ROW($A$1:$A$5))+1;"");2));"")
    

    显然公式外壳是用 CTRL + SHIFT + ENTER 插入的。

    【讨论】:

    • 感谢您的帮助!不幸的是,它仍然无法正常工作。即使数据中有多个匹配项,我也会收到 k=2 的 NUM# 错误。公式中是否有任何错误会导致此问题?
    最近更新 更多