【问题标题】:Conditional VLOOKUP有条件的 VLOOKUP
【发布时间】:2012-08-23 07:24:43
【问题描述】:

我有两个 Excel 电子表格:

一个人有一个 id 和一个日期 另一个有一个id,两个日期和一个值

只要电子表格 1 中的日期介于电子表格 2 中的两个日期之间,我就应该匹配 ID 并返回值。

这些电子表格之间存在一一对应关系,如果未找到匹配项,则默认值为 0

第一个电子表格有很多行。是否有某种 VLOOKUP 函数可以用来获取正确的数据?

【问题讨论】:

    标签: excel match vlookup


    【解决方案1】:

    有一种非常简单的方法可以实现这一点:连接您要搜索的多个字段,只要它们是唯一的,您就完成了。否则,您应该查看数组单元格。

    【讨论】:

      【解决方案2】:

      SUMPRODUCT 和数组公式是您所需要的。

      =SUMPRODUCT(--(Sheet2!$A$2:$A$2000=A2),--(Sheet2!$B$2:$B$2000<B2),--(Sheet2!$C$2:$C$2000>B2),--(Sheet2!$D$2:$D$2000))
      

      这必须作为数组公式输入,使用 CTRL+SHIFT+Enter。如果你输入正确,你会看到 excel 用{} 包围公式。

      假设:A2 中要检查的 ID,B2 中要检查的日期
      工作表 2 上的数据顺序为 A ID、B 开始日期、C 结束日期和 D 值(数字)

      数组公式返回一个真/假列表,然后将其相乘。仅当所有条件均为 True 时才返回一个值(因为任何 False 的答案都等于零,而零 * 另一个数字为零)。

      如果 2 个范围重叠,这将给出错误答案

      【讨论】:

      • 这个应该有问题:ID不是唯一的,这意味着在电子表格2中,您可以有多个ID(对于不同的日期集,因此是一对一的对应关系)。在我看来,条件中的 VLOOPKUP 将停止在第一个正 id...
      • 如果 ID 不是唯一的,那么正确答案是什么?它应该返回哪个值:第一个副本 ID 或第二个副本 ID?根据您对此问题的回答:一种选择是使所有 ID 都是唯一的。 - 例如使用这样的公式: =IF(COUNTIF(A$1:A1,A1)>1,A1 & "-" & TEXT(COUNTIF(A$1:A1,A1),"#"),A1) -然后你会自动填充它。
      • 或者,如果它们确实按行对应,那么您可以将 1、2、3、4 等自动填充到一列中,并将它们用作您的唯一 ID。
      • 嗯。我看到他想在表 2 中找到与表 1 中的 ID 匹配的每个 ID(这不是 1 对 1 的对应关系),检查日期,一旦他找到匹配的日期,输出相应的值,否则输出 0 ...这需要一点思考:)
      • 我不确定我是否理解他的问题,但如果我理解正确,肖恩,您可以尝试倒退 - 也就是说,将您的自定义 vlookup 公式放在第二张表上,然后检查第一张表查看对应 ID 的日期是否介于第二张表 B 和 C 列中的日期之间。
      猜你喜欢
      • 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
      相关资源
      最近更新 更多