求Excel匹配ID后查找最近日期时间的公式解决方案
Excel ID匹配数据填充解决方案
正确公式实现
适用于Excel 365/2021(动态数组版本)
在Delivered工作表的Answered列(示例单元格D2)输入:
=XLOOKUP(B2,Calls!B:B,Calls!D:D,"No Match")
在Date/Time Answered列(示例单元格E2)输入:
=XLOOKUP(B2,Calls!B:B,Calls!C:C,"No Match")
输入后直接回车,公式会自动向下填充。
适用于旧版Excel(无动态数组支持)
在Delivered工作表的Answered列(D2)输入以下公式,输入完成后按Ctrl+Shift+Enter确认(数组公式):
=IFERROR(INDEX(Calls!D:D,MATCH(B2,Calls!B:B,0)),"No Match")
在Date/Time Answered列(E2)输入:
=IFERROR(INDEX(Calls!C:C,MATCH(B2,Calls!B:B,0)),"No Match")
按Ctrl+Shift+Enter确认后,下拉填充到其他行即可。
原公式错误原因分析
你之前使用的公式错误引入了MIN(ABS(...))时间差计算逻辑,偏离了按ID精确匹配的核心需求:
- 原公式中
(Calls!B2:B26=B2)*(Calls!C2:C26-C2)的运算逻辑会导致:ID不匹配时结果为0,ID匹配时为时间差值。MIN函数会优先选取最小的0值,最终匹配到ID不对应的错误记录,所以返回了不符合预期的结果。 - 你尝试的
SMALL、MIN类公式同样错误加入了时间筛选逻辑,而你的需求只需要基于ID的精准匹配,不需要额外的时间条件。
效果验证
针对示例中ID为C763G的行,使用上述正确公式后:
- Answered列会返回
Calls表对应行的M - Date/Time Answered列会返回
8/19/2021 11:29:00 PM,与你标注的正确结果一致。
内容的提问来源于stack exchange,提问作者Robert Trumbauer
相关产品推荐
相关产品推荐

