【问题标题】:Excel MATCH + COUNTIF function: retrieving the nth value in an arrayExcel MATCH + COUNTIF 函数:检索数组中的第 n 个值
【发布时间】:2012-04-10 16:10:50
【问题描述】:

我有一个公式,我在 Excel 中使用它来返回与指定值匹配的第一项的第 # 行。

公式:=MATCH(0,COUNTIF($B$1,List),0) + CTRL + SHIFT + ENTER 在 Mac 中:CMD + 返回

变成:

MATCH(0,{**0**;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0},0)

输出:1

我想更新函数,以便找到与指定值匹配的第二个、第三个等实例。

像这样:

MATCH(0,{0;**0**;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0},0)

这个输出:2

【问题讨论】:

标签: excel function countif excel-match


【解决方案1】:

您当前的公式没有找到列表中匹配 B1 的第一个值的位置吗?

第二次尝试这个数组公式

=SMALL(IF(List<>$B$1,ROW(List)-MIN(ROW(List))+1),2)

2 替换为任何值 n 以进行第 n 次匹配。假设列表是单列

【讨论】:

  • 这就像手套一样,只需稍加修改,用等号代替小于或大于:=SMALL(IF(List=$B$1,ROW(List)-MIN(ROW(列表))+1),2)
  • @user1311882 - 没问题 - 就像我说的那样,我试图使其与您的原件保持一致,如果您将 COUNTIF 匹配为零,您将找到第一个单元格的位置 not equal 到$B$1 - 要查找 $B$1 的第一个实例的位置,您只需使用 =MATCH($B$1,List,0)
【解决方案2】:

您可以在每次找到一个事件时动态移动列表,以便下次出现时,列表将从找到的最后一个位置开始。

使用这个MATCH(<Match value>,INDIRECT(" <column of data> " & <Last position found> +1 & ":<Column of Data><Last Row Of Data>"),0)+<Last position found>

请看这个:filter dynamic

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多