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

PowerBI数据集销售额排名、累计求和及80/20占比计算问题咨询

PowerBI 销售额累计排名与80/20分析实现方案

错误原因说明

你之前两个排名度量值出错的核心原因:RANKX第一个参数传入整张ProductSales表时,表格视觉对象的行上下文(每行对应一个零件号)会把ProductSales表过滤为仅包含当前零件的行,每次排名仅1行数据参与,因此返回结果不符合预期。

完整实现方案

1. 销售额基础度量值

如果用qtysold乘price计算,写法为:

TotalSales = SUMX(ProductSales, ProductSales[qtysold] * ProductSales[price])

如果表中已有预计算的ExtPrice字段,也可以直接写:

TotalSales = SUM(ProductSales[ExtPrice])

2. 零件销售额排名度量值

Sales Rank = 
VAR AllVisibleParts = ALLSELECTED(ProductSales[Part Number])
RETURN
RANKX(AllVisibleParts, [TotalSales], , DESC, Dense)
  • 用ALLSELECTED获取年份、季度切片器筛选后所有可见的零件号,不受表格行上下文影响
  • DESC表示按销售额从高到低排序,Dense表示相同销售额排名一致、后续排名不跳号,需要跳号可替换为Skip

3. 累计销售额度量值

Running Total Sales = 
VAR CurrentRank = [Sales Rank]
VAR AllVisibleParts = ALLSELECTED(ProductSales[Part Number])
RETURN
SUMX(
    FILTER(
        ADDCOLUMNS(AllVisibleParts, "RankVal", [Sales Rank]),
        [RankVal] <= CurrentRank
    ),
    [TotalSales]
)

4. 累计占比度量值(用于80/20分析)

Cumulative Sales % = 
VAR TotalAllSales = CALCULATE([TotalSales], ALLSELECTED(ProductSales[Part Number]))
RETURN
DIVIDE([Running Total Sales], TotalAllSales, 0)

将该度量值格式设置为百分比即可直接使用。

使用方法

把ProductSales表的Part Number字段,以及上述四个度量值添加到表格视觉对象中,即可得到你预期的输出效果,年份、季度切片器的筛选会正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:06:01