Excel 2019中匹配食材后计算配方成本的公式求助
饼干配方食材成本计算解决方案(Excel 2019)
前提假设
假设你的数据结构如下:
- 单价表:列A为食材名称,列B为每克单价,列E为每毫升单价
- 配方表:列G为食材名称,列H为食材用量(纯数值,单位对应单价表的克/毫升),列I为成本计算结果列
方法1:VLOOKUP函数(适合食材名称在单价表首列的场景)
在配方表的成本单元格(如I2)输入以下公式,下拉填充即可:
=H2 * VLOOKUP(G2, 单价表!A:E, 2, FALSE)
- 参数说明:
G2:配方表当前行的食材名称单价表!A:E:单价表的数据源范围2:返回单价表第2列(每克单价)的匹配值FALSE:启用精确匹配,确保食材名称完全对应
如果需要区分克/毫升单位(比如配方表列F标注单位),可结合IF函数:
=H2 * IF(F2="克", VLOOKUP(G2, 单价表!A:E, 2, FALSE), VLOOKUP(G2, 单价表!A:E, 5, FALSE))
方法2:INDEX+MATCH组合(更灵活,无首列限制)
如果单价表的食材名称不在首列,或需要更稳定的匹配,推荐用这个组合:
匹配每克单价的公式:
=H2 * INDEX(单价表!B:B, MATCH(G2, 单价表!A:A, 0))
匹配每毫升单价的公式:
=H2 * INDEX(单价表!E:E, MATCH(G2, 单价表!A:A, 0))
- 参数说明:
MATCH(G2, 单价表!A:A, 0):找到食材名称在单价表列A中的行号INDEX(单价表!B:B, 行号):返回该行对应的单价数值
同样,区分单位的公式:
=H2 * IF(F2="克", INDEX(单价表!B:B, MATCH(G2, 单价表!A:A, 0)), INDEX(单价表!E:E, MATCH(G2, 单价表!A:A, 0)))
补充提示
- 确保食材名称在两张表中完全一致(避免"低筋面粉"和"面粉"这类差异,否则会返回
#N/A) - 若要处理匹配失败的情况,可嵌套IFERROR函数:
=IFERROR(H2 * INDEX(单价表!B:B, MATCH(G2, 单价表!A:A, 0)), "未找到对应食材")
内容的提问来源于stack exchange,提问作者user21599773
相关产品推荐
相关产品推荐

