Google Sheets如何根据字段内多项目的对应价格计算总和?
Google Sheets 计算同一字段内多项目总和的方法
你的需求是:A列是项目名称,B列对应价格,C列是用/分隔的项目组合,需要计算每个组合的总价(D列)。
你之前尝试的公式=SUM(IFERROR(VLOOKUP(FLATTEN(SPLIT(JOIN("/", B:B), "/")), C:A, 2, FALSE), 0))存在逻辑错误——错误拼接了B列内容,且VLOOKUP的查找区域顺序颠倒,导致无法正确计算。
正确公式方案
单个单元格公式(手动下拉填充)
在D2单元格输入以下公式,然后下拉填充到其他行:
=SUM(IFERROR(VLOOKUP(SPLIT(C2, "/"), A:B, 2, FALSE), 0))
逻辑说明:
SPLIT(C2, "/"):将C列的项目组合按/拆分为单个项目列表VLOOKUP(..., A:B, 2, FALSE):在A:B区域中查找拆分后的项目,返回对应B列的价格IFERROR(..., 0):处理找不到匹配项目的情况,返回0避免错误SUM(...):将所有项目的价格求和得到总价
数组公式(自动填充整列)
如果希望D列自动计算所有行的总价,直接在D2单元格输入以下数组公式:
=BYROW(C2:C, LAMBDA(x, SUM(IFERROR(VLOOKUP(SPLIT(x, "/"), A:B, 2, FALSE), 0))))
逻辑说明:
BYROW(C2:C, LAMBDA(x, ...)):遍历C2到C列末尾的每个单元格,将每个单元格内容赋值给x- 对每个
x执行拆分、查找、求和操作,自动返回对应行的总价
验证示例
用你的表格数据测试:
- D2:拆分
A/B/C得到A、B、C,对应价格1+2+3=6,符合预期 - D3:拆分
B/C得到B、C,对应价格2+3=5,符合预期 - D5:拆分
A/A/B得到A、A、B,对应价格1+1+2=4,符合预期 - D6:拆分
C/C/C得到三个C,对应价格3+3+3=9,符合预期
内容的提问来源于stack exchange,提问作者Kent Ong
相关产品推荐
相关产品推荐

