如何在Google Sheets中动态更新星露谷未烹饪食谱的食材需求清单?
《星露谷物语》食谱食材统计问题解决
我需要整理《星露谷物语》的全食谱信息,包含每份食谱的食材、解锁方式,并且实现自动统计未烹饪食谱的食材总需求量——当标记某份食谱为已烹饪时,对应食材的剩余需求量能自动更新。
现有表格结构
| 是否已烹饪 | 菜品 | 食材 | 食材数量 | 食谱来源 |
|---|---|---|---|---|
| 已烹饪 | 煎蛋 | 任意鸡蛋 | 1 | 初始解锁 |
| 未烹饪 | 煎蛋卷 | 任意鸡蛋 | 1 | 酱料女王 第一年春28日 |
| 未烹饪 | 煎蛋卷 | 任意牛奶 | 1 | 酱料女王 第一年春28日 |
表格已完成全部内容,每个食谱对应的「菜品」单元格为合并状态。目前已通过以下公式完成基础统计:
- 提取所有唯一食材:
=UNIQUE(C2:C203) - 统计食材总需求量:
=SUMIF(C2:C203, G2:G, D2:D203)
但尝试用SUMIFS统计未烹饪食谱的食材需求时,公式=SUMIFS(C2:C203, G2:G203, D2:D203, A2:A203, "Not Cooked")始终返回0。
问题原因与修正方案
公式错误分析
SUMIFS的正确语法是SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2...),你写的公式完全颠倒了参数顺序:
- 第一个参数应该是要求和的「食材数量」列(D列),而非食材名称列
- 条件配对逻辑错误,且条件文本与表格内的中文「未烹饪」不匹配(你用了英文"Not Cooked")
修正后的公式
针对G2单元格的食材,统计未烹饪食谱中的总需求量,使用以下公式:
=SUMIFS(D2:D203, A2:A203, "未烹饪", C2:C203, G2)
动态批量生成统计结果
如果需要一次性生成所有食材的未烹饪需求量,可结合UNIQUE和BYROW实现动态数组统计:
=LET( 食材列表, UNIQUE(C2:C203), 未烹饪需求量, BYROW(食材列表, LAMBDA(x, SUMIFS(D2:D203, A2:A203, "未烹饪", C2:C203, x))), HSTACK(食材列表, 未烹饪需求量) )
内容的提问来源于stack exchange,提问作者TheRedVoyager
相关产品推荐
相关产品推荐

