【问题标题】:excel address as lookup arrayexcel地址作为查找数组
【发布时间】:2018-06-28 04:59:03
【问题描述】:

首先,提前感谢您。 我面临的问题是当我查找不同的表时需要组合两个不同的值,但是我不知道这两个组合将是哪一列,并且它们每行可能不同。希望这个例子能有所帮助

查表

ID | Benefit | Option | Tier | Benefit | Option | Tier
123| 1       | 1      | 3    | 2       | 7      |3
456| 2       |3       |1     |1        |3      |2

当前表格

ID  | Benefit |
123 | 1
123 | 2
456 | 1
456 | 2

我给出的例子只有两种可能,但我的实际程序是它可能在 20 个不同的位置。我所拥有的一个积极因素是它总是在利益列下,所以我在想的是 concat benefit & 04 并使用索引匹配。我想根据我的查找所在的行动态连接 这是我到目前为止得到的,但它不起作用

=INDEX(T3:X4,MATCH(N4,$S$3:$S$4,0),MATCH($O$3&O4,T2:X2&ADDRESS(ROW(INDEX($S$3:$S$4,MATCH( N4,$S$3:$S$4,0))),20):地址(行(索引($S$3:$S$4,MATCH(N4,$S$3:$S$4,0))),24 ),0))

在哪里 ADDRESS(ROW(INDEX($S$3:$S$4,MATCH(N4,$S$3:$S$4,0))),20) 确实返回 T3 和 ADDRESS(ROW(INDEX($S$3:$S$4,MATCH(N4,$S$3:$S$4,0))),24) 返回 x3 所以我希望它会结合利益和 1,它会在 t 3 上看到它的匹配

【问题讨论】:

  • 你为什么不尝试像 =if(a1+a2=t3,true,false) 之类的东西
  • 我认为您需要重组数据才能在纯 Excel 中执行此操作。目前,您需要两个单独的查找来查找值。
  • ADDRESS 函数返回文本结果 - 要将其转换为 excel 友好的单元格引用,您需要 INDIRECT 函数.....但可能有更简单/更好的方法,请参阅我的答案

标签: excel indexing match


【解决方案1】:

我猜你正在尝试找到一个公式来输入 P4 到 P7 ?

=INDEX($S$2:$X$4,MATCH(N4,$S$2:$S$4,0),SUMPRODUCT(($S$2:$X$2="wtwben")*(OFFSET($S$2:$X$2,MATCH(N4,$S$3:$S$4,0),0)=O4)*(COLUMN($S$2:$X$2)-COLUMN($S$2)+1))+1)

【讨论】:

  • 谢谢,这正是我想要的。
【解决方案2】:

如果要返回的值始终是数字,并且每个 ID/Benefit 组合只有一个匹配项(如您的示例中所示),那么您可以使用复制的 P4 中的此公式获取 Option 值

=SUMPRODUCT((S$3:S$4=N4)*(T$2:W$2="Benefit")*(T$3:W$4=O4),U$3:X$4)

[假设标题是您问题中显示的第一个表格,即T2 值为“Benefit”]

注意范围如何变化

....或者返回文本值......或者如果 ID/Benefit 组合重复,这将为您提供“第一个”匹配项,其中“第一个”表示按行。

=INDIRECT(TEXT(AGGREGATE(15,6,(ROW(U$3:X$4)*1000+COLUMN(U$3:X$4))/(S$3:S$4=N4)/(T$2:W$2="Benefit")/(T$3:W$4=O4),1),"R0C000"),FALSE)

【讨论】:

    猜你喜欢
    • 2017-05-25
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    相关资源
    最近更新 更多