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

Power Pivot中如何在数据透视表内实现行聚合结果相除计算?

Power Pivot 实现单位数量平均收费/预期收入的正确方案

问题核心

你的数据采用行级存储模式:Cat1字段包含三类指标(Charges、Expected Rev、VolQty),OR Case字段对应各类指标的数值。要实现总收费/总数量、总预期收入/总数量的计算,必须通过DAX度量值精准筛选聚合,普通透视表功能无法满足需求。

之前方法的错误原因

  • 方法1:将Sum of OR Case改为Average of OR Case是对所有行数值取平均,并非总收费除以总数量,逻辑完全错误。
  • 方法2:Show Values As > % Of要求对比项处于同一维度分组内,而你的Cat1是不同指标分类,无法直接适配该功能,导致#N/A。
  • 方法3:SUMX(DISTINCT(...))的聚合逻辑错误,且未处理VolQty总和为0的情况,因此出现#NUM!;另外字段引用可能存在混淆(你写的Expense Category应为Cat1)。

正确DAX度量值

假设你的数据表名为DataTable,数值字段为OR Case,分类字段为Cat1,创建以下两个度量值:

1. 单位数量平均收费

单位收费 = 
VAR TotalCharges = CALCULATE(SUM(DataTable[OR Case]), DataTable[Cat1] = "Charges")
VAR TotalVolQty = CALCULATE(SUM(DataTable[OR Case]), DataTable[Cat1] = "VolQty")
RETURN
IF(TotalVolQty = 0, BLANK(), TotalCharges / TotalVolQty)

2. 单位数量平均预期收入

单位预期收入 = 
VAR TotalExpectedRev = CALCULATE(SUM(DataTable[OR Case]), DataTable[Cat1] = "Expected Rev")
VAR TotalVolQty = CALCULATE(SUM(DataTable[OR Case]), DataTable[Cat1] = "VolQty")
RETURN
IF(TotalVolQty = 0, BLANK(), TotalExpectedRev / TotalVolQty)

使用步骤

  1. 打开Power Pivot数据模型,点击「度量值」选项卡 → 「新建度量值」,分别粘贴上述两个DAX公式(注意替换实际表名/字段名)。
  2. 返回数据透视表,将新建的两个度量值拖入「值」区域。
  3. 如需按其他维度(如日期、部门)拆分计算,直接将对应字段拖入「行」/「列」区域,度量值会自动适配分组计算。

注意事项

  • 加入IF(TotalVolQty = 0, BLANK())是为了避免数量为0时出现错误值,返回空白更符合报表需求。
  • 度量值的逻辑是先计算当前分组内的总收费/总预期收入,再除以同分组内的总数量,完全匹配你要的「单位数量平均」计算逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 01:00:01