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

如何在数据透视表(Pivot Table)/Power Pivot中仅对唯一行的值计算平均值

如何在数据透视表(Pivot Table)/Power Pivot中仅对唯一行的值计算平均值

我来帮你搞定这个需求!你的核心诉求是:同一个序列号不管对应多少个类别,计算平均价格时只算一次;而且筛选特定类别时,只要该序列号在这个类别里出现过,就把它的价格纳入计算对吧?下面给你两种实用的解法:

方法一:普通透视表+辅助列(不用Power Pivot)

这个方法适合不想用Power Pivot的场景,只需要给原始数据加个辅助列就行:

  1. 在原始数据右侧新增一列,比如命名为唯一价格计入,输入公式:
    =IF(COUNTIF($A$2:A2,A2)=1,C2,0)
    (这里假设Serial Num在A列,Price在C列,公式下拉填充后,每个序列号的第一行会显示它的价格,后续重复行显示0)
  2. 插入透视表:
    • 把Category拖到「筛选器」区域
    • 把Serial Num拖到「值」区域,然后右键设置值字段为「非重复计数」(用来统计当前筛选下的唯一序列号数量)
    • 把刚才的唯一价格计入列拖到「值」区域,设置为「求和」(用来统计当前筛选下所有唯一序列号的价格总和)
  3. 添加计算字段:
    在透视表的「分析」选项卡(Excel 2016及以后)里点击「字段、项目和集」→「计算字段」,命名为唯一平均价格,输入公式:
    =唯一价格计入求和 / Serial Num非重复计数
    确定后,透视表里就会显示符合要求的平均价格了。

方法二:Power Pivot+DAX度量值(更简洁)

如果你的Excel支持Power Pivot(大部分现代版本都支持),这个方法更高效,不用修改原始数据:

  1. 加载数据到Power Pivot:选中原始数据区域,点击「数据」选项卡→「添加到数据模型」
  2. 创建DAX度量值:
    在Power Pivot窗口里,点击「主页」选项卡→「新建度量值」,输入:
    唯一平均价格 = 
    AVERAGEX(
        VALUES('你的表名'[Serial Num]),
        CALCULATE( MAX('你的表名'[Price]) )
    )
    
    (记得把你的表名换成你实际的表名称)
  3. 插入Power Pivot透视表:
    回到Excel,点击「插入」选项卡→「透视表」,选择「使用此工作簿的数据模型」,然后把Category拖到「筛选器」,把刚创建的唯一平均价格拖到「值」区域就可以了。

效果验证(用你的示例数据)

  • 不筛选任何类别时:唯一序列号是12345、45678、23456、98765,平均价格为(100+50+75+80)/4=76.25,正确
  • 筛选Category1时:唯一序列号是12345、45678、98765,平均价格为(100+50+80)/3≈76.67,正确
  • 筛选Category2时:唯一序列号是12345、23456、98765,平均价格为(100+75+80)/3=85,完全符合你的要求!

备注:内容来源于stack exchange,提问作者Maria

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 10:09:50