Google Sheets:根据物品名称获取最接近指定日期的物品单价
Google Sheets 按物品名称匹配最近日期单价的解决方案
核心需求
根据指定物品名称,获取该物品对应日期最接近目标日期的单价。
公式方案(以目标日期在E2、目标物品在F2为例)
推荐使用XLOOKUP函数结合日期差计算,公式如下:
=XLOOKUP(1, (B:B=F2)*(ABS(A:A-E2)=MIN(FILTER(ABS(A:A-E2), B:B=F2))), C:C, "无匹配数据")
公式拆解
(B:B=F2):筛选出与目标物品名称匹配的所有行ABS(A:A-E2):计算每行日期与目标日期的绝对差值(消除正负差影响)MIN(FILTER(ABS(A:A-E2), B:B=F2)):提取匹配物品中最小的日期差值(B:B=F2)*(ABS(A:A-E2)=...):同时满足「物品匹配」和「日期差最小」的行,返回逻辑值1XLOOKUP:定位符合条件的行,返回对应C列的单价;无匹配时返回"无匹配数据"
备选方案(INDEX+MATCH组合)
如果习惯使用经典函数组合,可使用:
=INDEX(C:C, MATCH(MIN(FILTER(ABS(A:A-E2), B:B=F2)), ABS(A:A-E2)*(B:B=F2), 0))
注意事项
- 确保A列(日期列)设置为日期格式,避免文本格式导致差值计算错误
- 若存在多个日期与目标日期差值相同的情况,公式会返回第一个出现的单价
- 建议将公式中的全列引用(如
B:B)改为实际数据范围(如B2:B100),提升计算性能
内容的提问来源于stack exchange,提问作者Essem
相关产品推荐
相关产品推荐

