Excel报表需求:按物料Price Control匹配对应最新价格及期间
Excel 物料价格自动匹配实现方案
前提假设
假设你的原始数据存储在Sheet1,列结构如下(可根据实际场景调整):
- A列:物料编码
- B列:Price Control(标识为V/S等类型)
- C列:Periodic Unit Price(对应V类型的价格)
- D列:Periodic Price对应的期间
- E列:Standard Price(对应S类型的价格)
- F列:Standard Price对应的期间
假设你在Sheet2的H2单元格通过下拉选择物料,需要在I2(Price Control)、J2(对应价格)、K2(对应期间)自动填充目标数据。
公式实现
- 获取Price Control(I2单元格):
=XLOOKUP(H2, Sheet1!A:A, Sheet1!B:B, "无匹配物料")
- 获取对应价格(J2单元格):
根据Price Control的类型,自动匹配对应类型下最新期间的价格:
=IF(I2="V", XLOOKUP(1, (Sheet1!A:A=H2)*(Sheet1!D:D=MAXIFS(Sheet1!D:D, Sheet1!A:A=H2, Sheet1!B:B="V")), Sheet1!C:C, "无V类型价格数据"), XLOOKUP(1, (Sheet1!A:A=H2)*(Sheet1!F:F=MAXIFS(Sheet1!F:F, Sheet1!A:A=H2, Sheet1!B:B="S")), Sheet1!E:E, "无S类型价格数据") )
- 获取对应期间(K2单元格):
=IF(I2="V", MAXIFS(Sheet1!D:D, Sheet1!A:A=H2, Sheet1!B:B="V"), MAXIFS(Sheet1!F:F, Sheet1!A:A=H2, Sheet1!B:B="S") )
注意事项
- 确保Excel版本支持
XLOOKUP和MAXIFS(Office 365/2021及以上版本可用);如果是旧版本,可替换为INDEX+MATCH组合实现相同逻辑。 - 原始数据中,同一物料+Price Control类型的期间需唯一,避免重复期间导致匹配异常。
- 若物料存在多个Price Control类型,公式会优先以I2返回的类型为准匹配对应价格数据。
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

