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

如何在Power BI中计算累计占比≤80%的商品数量并展示于卡片组件?

帕累托图处理:统计累计占比≤80%的商品数量

我正在探索帕累托图的多种处理方式,此次尝试基于度量值获取列的总和。现有销售数据表如下:

商品销售额
Article_41000.00
Article_8412.00
Article_1315.47
Article_3259.10

我使用如下度量值计算累计占比:

Pareto_Chart_CA = 
VAR CostVar = [Total_Cost]
VAR All_CA = CALCULATE([Total_Cost];ALLSELECTED(Sales))

RETURN
DIVIDE(
SUMX(
    FILTER(
            SUMMARIZE(ALLSELECTED(Sales);Sales[Article];
                "Cumm Total"; [Total_Cost]);
                    [Cumm_Total] >= CostVar);
                        [Cumm_Total]);
    All_CA;0)

将该度量值添加到可视化表格后,得到如下结果:

商品销售额累计占比
Article_41000.000.50
Article_8412.000.71
Article_1315.470.87
Article_3259.101.00

我希望统计累计占比≤0.8的商品数量,因此创建了如下度量值:

Check_NB_80 = 
    IF(
        Sales[Pareto_Chart_CA] <= 0.8;
        "1";
        "0"
    )

得到结果表:

商品销售额累计占比判断标识
Article_41000.000.501
Article_8412.000.711
Article_1315.470.870
Article_3259.101.000

我想要计算“判断标识”列的总和(结果为2)并将其放入卡片组件,展示占总销售额≤80%的商品数量。请问是否可以实现该操作?


解决方案

当然可以实现,你需要创建一个新的度量值来直接统计符合条件的商品数量(注意原Check_NB_80返回的是文本类型的"1"/"0",无法直接求和),推荐两种实现方式:

方法1:遍历商品求和判断结果

创建新度量值:

Count_Products_80Pct = 
SUMX(
    ALLSELECTED(Sales[Article]),
    IF([Pareto_Chart_CA] <= 0.8, 1, 0)
)

该度量值会遍历所有选中的商品,对每个商品判断其累计占比是否≤0.8,符合条件则计1,否则计0,最后求和得到总数。

方法2:筛选后统计行数

另一种更高效的写法:

Count_Products_80Pct = 
VAR ProductList = 
    FILTER(
        SUMMARIZE(ALLSELECTED(Sales), Sales[Article], "Pareto", [Pareto_Chart_CA]),
        [Pareto] <= 0.8
    )
RETURN
COUNTROWS(ProductList)

先生成包含每个商品及其累计占比的临时表,筛选出累计占比≤0.8的行,最后统计筛选后的行数即可。

将上述任意一个度量值添加到卡片组件中,就能直接显示目标结果(示例中为2)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:15:39