谷歌表格:生成含加权平均价格的简化采购表格
处理重复采购记录的加权平均简化方案
核心思路
加权平均价格的本质是**(各批次数量×价格的总和)÷该物品总采购数量**,结合UNIQUE去重+条件求和函数即可实现,无需专用的AVERAGE.WEIGHTEDIF函数。
分步实现(适配所有Excel版本)
假设原始数据结构:
- A列:物品名称(表头A1)
- B列:采购数量(表头B1)
- C列:采购单价(表头C1)
- 数据行从A2开始
1. 生成唯一物品列表
在新区域(比如E2单元格)输入公式,自动提取不重复的物品名称:
=UNIQUE(A2:A100) // 替换A100为实际数据最后一行行号
如果是旧版Excel(无UNIQUE),可通过「数据→删除重复值」手动生成唯一列表。
2. 计算总采购数量
在F2单元格输入公式,下拉填充:
=SUMIF(A:A,E2,B:B)
3. 计算加权平均价格
在G2单元格输入公式,下拉填充:
=SUMPRODUCT((A:A=E2)*B:B*C:C)/F2
- 原理:
SUMPRODUCT((A:A=E2)*B:B*C:C)会筛选出当前物品的所有批次,计算「数量×价格」的总和;再除以该物品的总数量(F2)得到加权平均。
Excel 365动态数组一键生成(无需下拉填充)
用LET+HSTACK组合,一次性生成完整的简化表格(输入到E2单元格即可):
=LET( uniqueItems, UNIQUE(A2:A100), totalQty, SUMIF(A:A, uniqueItems, B:B), weightedAvg, SUMPRODUCT((A:A=uniqueItems)*B:B*C:C)/totalQty, HSTACK(uniqueItems, totalQty, weightedAvg) )
示例演示
| 原始数据(A-C列) | ||
|---|---|---|
| 物品名称 | 数量 | 价格 |
| 笔记本 | 5 | 10 |
| 笔记本 | 3 | 12 |
| 钢笔 | 2 | 15 |
| 钢笔 | 4 | 14 |
| 简化表格(E-G列) | ||
|---|---|---|
| 物品名称 | 总数量 | 加权平均价格 |
| 笔记本 | 8 | 10.75 |
| 钢笔 | 6 | 14.33 |
内容的提问来源于stack exchange,提问作者Mike Schwartz
相关产品推荐
相关产品推荐

