【问题标题】:How to return an array where a column matches a value如何返回列与值匹配的数组
【发布时间】:2020-04-02 17:20:23
【问题描述】:

我正在尝试创建 _Type_below 列,它返回匹配名称和匹配间隔的类型值。我知道我可以将 VLOOKUP 用于单个名称,但可以说我有数千个名称,我可以为所有这些名称指定一个 VLOOKUP 数组。干杯!!

Name   position             _Type_             Name    Range_From      Range_To     Type
bob    0                      A                bob     0               30            A
bob    5                      A                bob     30              100           B
bob    10                     A                doug    0               40            C
bob    15                     A                doug    40              200           A
bob    20                     A
bob    30                     B
bob    40                     B
bob    80                     B
doug   0                      C
doug   20                     C
doug   40                     A
...       

【问题讨论】:

  • 你有什么版本的?
  • 处理时间长我很好
  • 365 是我的版本

标签: arrays excel return match vlookup


【解决方案1】:

如果你有动态数组公式,你可以使用 FILTER():

 =VLOOKUP(B2,FILTER(E:G,A2=D:D),3)


如果不是,那么您的数据必须先按 D 排序,然后按 E:

=VLOOKUP(B2,INDEX(E:E,MATCH(A2,D:D,0)):INDEX(G:G,MATCH(A2,D:D,0)+COUNTIF(D:D,A2)-1),3)

这应该比较快,但需要对数据进行排序。

【讨论】:

    【解决方案2】:

    您可以使用超级老式的方法并使用SumProduct() 获取行并将其传递给Index()。不过速度不会很快。

    =INDEX($I$1:$I$5, SUMPRODUCT(($F$1:$F$5=A2)*($G$1:$G$5<=B2)*($H$1:$H$5>B2)*ROW($F$1:$F$5)), 1)
    

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      相关资源
      最近更新 更多