Google表格跨标签获取食材后汇总数量与成本的公式咨询
解决膳食规划表的食材数量与成本汇总问题
整合式公式方案(一键生成食材+总数量+总成本)
如果想直接生成包含去重食材、总数量、总成本的三列数据,可以用以下整合公式(假设在膳食规划表的F6单元格输入,按需调整起始位置):
=LET( 规划餐品, D6:D18, 食材数据源, 'Meal Ingredients'!A:D, 去重食材列表, TOCOL(ARRAYFORMULA(IF(TOROW(规划餐品)=INDEX(食材数据源,,1),INDEX(食材数据源,,2),NA())),3,TRUE), BYROW(去重食材列表, LAMBDA(当前食材, { 当前食材, SUMIFS(INDEX(食材数据源,,3),INDEX(食材数据源,,1),规划餐品,INDEX(食材数据源,,2),当前食材), SUMIFS(INDEX(食材数据源,,4),INDEX(食材数据源,,1),规划餐品,INDEX(食材数据源,,2),当前食材) })) )
参数说明
规划餐品:对应你表格中填写餐名的范围D6:D18食材数据源:Meal Ingredients标签页的A-D列(假设A=餐名、B=食材名、C=食材数量、D=单位成本,若列结构不同,修改INDEX(食材数据源,,列号)中的列号即可)去重食材列表:复用了你原有的逻辑,提取对应餐品的所有食材并自动去重BYROW+SUMIFS:遍历每个去重食材,汇总该食材在所有规划餐品中的总数量与总成本
拆分式方案(保留原有食材列,单独计算数量/成本)
如果想保留你原本的食材列公式,单独计算数量和成本:
- 食材列(如F列):继续使用你的原有公式
=TOCOL(ARRAYFORMULA(IF(TOROW(D6:D18)='Meal Ingredients'!A:A,'Meal Ingredients'!B:B, NA())),3, TRUE)
- 总数量列(如G列):在G6输入以下数组公式,自动填充所有行
=BYROW(F6:F, LAMBDA(食材名, SUMIFS('Meal Ingredients'!C:C, 'Meal Ingredients'!A:A, D6:D18, 'Meal Ingredients'!B:B, 食材名)))
- 总成本列(如H列):在H6输入以下数组公式
=BYROW(F6:F, LAMBDA(食材名, SUMIFS('Meal Ingredients'!D:D, 'Meal Ingredients'!A:A, D6:D18, 'Meal Ingredients'!B:B, 食材名)))
注意事项
- 确保
Meal Ingredients标签页的列与公式中的引用对应,若数量列是E列,就把'Meal Ingredients'!C:C改成'Meal Ingredients'!E:E - 公式支持同一餐品中重复出现的同一种食材,会自动累加数量和成本
- 以上公式均适用于Google Sheets,若使用Excel需调整部分函数(比如Excel的TOCOL参数略有不同,且需365版本支持BYROW/LET)
内容的提问来源于stack exchange,提问作者hanz
相关产品推荐
相关产品推荐

