【问题标题】:Index-Match formula to return the first non-blank match返回第一个非空白匹配的索引匹配公式
【发布时间】:2018-01-31 00:12:59
【问题描述】:

我正在尝试编写一个索引匹配公式以应用于以下场景:

 1  Column A       Column B        Column C
 2   Duck                           123ABC 
 3   Goose           .5             123ABC
 4   Duck                           456DEF
 5   Duck                           456DEF
 6   Goose           .9             456DEF

公式公式将仅由 VBA 宏放置在 B 列中的空白行中。我正在使用以下公式:

=INDEX($B$1:$B$6),MATCH(C2,$C$2:$C:6,0))

想法是生成的数据集如下所示:

 1  Column A       Column B        Column C
 2   Duck            .5             123ABC 
 3   Goose           .5             123ABC
 4   Duck            .9             456DEF
 5   Duck            .9             456DEF
 6   Goose           .9             456DEF

为了实现这一点,我可以看到两种可能的选择:

  1. 如果查找找到要返回的“空白”单元格,则在公式中设置不返回值的条件。它需要继续查找,直到找到一个值(一个数字)。

  2. 有一个条件,它是查找的一部分,仅当 A 列显示“鹅”时才返回匹配项(通常情况下,具有值的行在 A 列中具有“鹅”。

我在网上研究过,但找不到有效的方法。

【问题讨论】:

  • 对 C 列的数据进行排序,然后按照以下步骤操作:stackoverflow.com/questions/20436835/… 除了指向下面的单元格。
  • @ScottCraner 不幸的是,在将要使用的应用程序中对数据进行排序不是一个选项(查看需要保持最初添加的行顺序的多年数据。

标签: vba excel excel-formula


【解决方案1】:

我能够自己解决这个问题。下面的数组公式就是我上面描述的:

=INDEX($B$1:$CB$6,MATCH(1,INDEX(($C$1:$C$6=C2)*($B$1:$B$6<>""),0),0))

【讨论】:

    猜你喜欢
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多