【发布时间】:2012-08-23 07:24:43
【问题描述】:
我有两个 Excel 电子表格:
一个人有一个 id 和一个日期 另一个有一个id,两个日期和一个值
只要电子表格 1 中的日期介于电子表格 2 中的两个日期之间,我就应该匹配 ID 并返回值。
这些电子表格之间存在一一对应关系,如果未找到匹配项,则默认值为 0
第一个电子表格有很多行。是否有某种 VLOOKUP 函数可以用来获取正确的数据?
【问题讨论】:
我有两个 Excel 电子表格:
一个人有一个 id 和一个日期 另一个有一个id,两个日期和一个值
只要电子表格 1 中的日期介于电子表格 2 中的两个日期之间,我就应该匹配 ID 并返回值。
这些电子表格之间存在一一对应关系,如果未找到匹配项,则默认值为 0
第一个电子表格有很多行。是否有某种 VLOOKUP 函数可以用来获取正确的数据?
【问题讨论】:
有一种非常简单的方法可以实现这一点:连接您要搜索的多个字段,只要它们是唯一的,您就完成了。否则,您应该查看数组单元格。
【讨论】:
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 个范围重叠,这将给出错误答案
【讨论】: