You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets如何用单公式实现逐行统计ID数乘单价求和

Google Sheets 无辅助列单公式实现物品ID加权求和

不需要新增辅助列,直接用SUMPRODUCT函数即可单公式完成全部计算逻辑,适配任意数量的Item列、数据行。

基础用法(计算单个指定ID的结果)

前提假设

  • Price列位于A列,有效数据从A2单元格开始向下延伸
  • 所有Item列从B列开始横向排列,行范围和Price列完全对齐
  • 待查询的目标物品ID存放在指定单元格,例如下方公式中使用G1作为ID输入单元格

公式

=SUMPRODUCT(A2:A * (B2:Z = G1))

你只需要把公式中B2:Z替换为你实际的Item列覆盖范围即可,比如Item列一直到AR列,就修改为B2:AR。

运算逻辑(完全匹配需求步骤)

  • 逐行计数:(B2:Z = G1)会遍历Item区域所有单元格,匹配目标ID的单元格返回逻辑值TRUE(运算中等价于数值1),不匹配的返回FALSE(等价于数值0),每行的1累加值就是该行目标ID的出现次数
  • 行内加权:逻辑值数组和A列Price值逐元素相乘时,每行的Price会自动乘以该行匹配到ID的单元格数量,直接得到「该行ID出现次数 * 该行Price」的乘积
  • 全局求和:SUMPRODUCT会自动对所有行的乘积结果求和,直接输出最终值

示例验证

用给出的样例数据测试:

  • G1填入ID1时,计算逻辑为50*2 +75*1 =175,公式返回结果一致
  • G1填入ID2时,计算逻辑为50*2 +75*3 =325,公式返回结果一致

进阶用法(一次性批量输出所有ID的计算结果)

如果需要直接得到所有出现过的物品ID的对应加权值,不需要逐个输入ID查询,可以用下面的单公式,输入后会自动溢出全部结果:

=LET(
  item_range, B2:Z,
  price_col, A2:A,
  valid_ids, UNIQUE(TOCOL(item_range, 1)),
  calc_result, MAP(valid_ids, LAMBDA(t_id, SUMPRODUCT(price_col * (item_range = t_id)))),
  HSTACK(valid_ids, calc_result)
)

公式返回结果为两列:第一列是所有去重后的物品ID,第二列是对应ID的加权求和结果。

方案优势

  • 无需任何辅助列,不受Item列数量、数据行数量限制
  • 原生支持数组运算,不需要额外嵌套ARRAYFORMULA,输入后回车即可生效
  • 运算效率高于嵌套COUNTIF的数组方案,大数据量下也能保持流畅
  • Item列范围内存在空列、空单元格时不会干扰计算结果,空值会自动判定为不匹配任意ID,不参与求和

内容的提问来源于stack exchange,提问作者w382903

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:36:28