You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Power BI矩阵可视化中创建计算累计总值列?

在Power BI矩阵中添加累计总值列的解决方案

嘿,很高兴看到你Power BI学习进度这么快!针对你在现有矩阵里添加累计总值列的需求,我给你整理了具体的实现步骤,都是基于DAX度量值来完成的,完美适配你当前的矩阵结构:

一、核心逻辑确认

你的矩阵是按UPC代码行展示销售总额,还有占列总计的百分比,要加的累计总值,应该是按当前UPC排序顺序,从第一行到当前行的销售总额累加,对吧?下面的方法都是基于这个逻辑来的。

二、创建累计销售总额度量值

首先,你需要写一个DAX度量值来计算累计值,把它添加到矩阵的「值」区域即可:

累计销售总额 = 
VAR 当前UPC = SELECTEDVALUE('你的销售表'[UPC代码])
VAR 所有可见UPC = ALLSELECTED('你的销售表'[UPC代码])
VAR 累计范围UPC = FILTER(所有可见UPC, '你的销售表'[UPC代码] <= 当前UPC)
RETURN
CALCULATE([销售总额], 累计范围UPC)

代码细节解释:

  • SELECTEDVALUE('你的销售表'[UPC代码]):获取当前矩阵行对应的UPC代码
  • ALLSELECTED('你的销售表'[UPC代码]):获取当前筛选上下文(比如页面切片器、矩阵筛选)下所有可见的UPC,确保累计是在当前筛选范围内的
  • FILTER(...):筛选出所有小于等于当前UPC的行,这里依赖你已经设置好的UPC排序(如果你的UPC是文本类型,记得先设置正确的排序规则,比如按数值排序,不然文本比较可能出错)
  • CALCULATE([销售总额], 累计范围UPC):计算筛选范围内的销售总额累加值

三、如果需要累计百分比(累计占总销售额的比例)

如果你还需要对应的累计占比列,可以再创建这个度量值:

累计销售占比 = 
VAR 当前UPC = SELECTEDVALUE('你的销售表'[UPC代码])
VAR 所有可见UPC = ALLSELECTED('你的销售表'[UPC代码])
VAR 累计范围UPC = FILTER(所有可见UPC, '你的销售表'[UPC代码] <= 当前UPC)
VAR 总销售额 = CALCULATE([销售总额], ALLSELECTED('你的销售表'))
RETURN
DIVIDE(CALCULATE([销售总额], 累计范围UPC), 总销售额)

创建后把它加到矩阵值区域,设置格式为百分比即可。

四、关键注意事项

  • 如果你的UPC是文本格式,直接用<=比较可能不符合预期(比如"100"会比"99"小),这时候需要把UPC转成数值再比较,把筛选行改成:
    VAR 累计范围UPC = FILTER(所有可见UPC, VALUE('你的销售表'[UPC代码]) <= VALUE(当前UPC))
    
  • 如果你需要忽略页面上的所有筛选,计算全局累计,把ALLSELECTED换成ALL即可,但一般场景下ALLSELECTED更符合需求(保留当前筛选的累计)

把这些度量值添加到矩阵后,你就能看到和现有列对齐的累计总值列啦,和你之前的百分比列搭配起来,就能得到更完整的透视效果!

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

火山引擎 最新活动