关于powerbi:计算汇总表列的累计和

Calculate cumulative sum of summarized table column

我在 PowerBI 上计算某列的累积总和时遇到问题。

我有一个很大的报价表,我想对其进行帕累托分析。按照许多教程,我按报价和销售额的总和创建了一个 SUMMARIZED 表。所以表定义为:

1
summary = SUMMARIZE(big_table; big_table[offer];"offer sales"; sum(big_table[sales]))

我发现的许多论坛和 stackoverflow 答案都将我引导到以下列上的累积总和公式:

1
2
3
4
5
6
7
8
cum_sales =
    CALCULATE(
        sum([offer_sales]);
        FILTER(
            ALLSELECTED(summary);
            summary[offer_sales] <= max( summary[offer_sales])
        )
    )

但是结果表不正确:

sample

但是(可能)由于我的数据结构和(当然)缺乏关于 PowerBI 工作原理的知识,我没有得到正确的结果...


1
Total Amount = SUM ( 'Fact'[Amount] )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Offer Visual Cumulative =
VAR OfferSum =
    ADDCOLUMNS (
        ALLSELECTED ( 'Offer'[Offer] ),
       "amt", [Total Amount]
    )
VAR CurrentOfferAmount = [Total Amount]
VAR OffersLessThanCurrent =
    FILTER (
        OfferSum,
        [amt] <= CurrentOfferAmount
    )
RETURN
    SUMX (
        OffersLessThanCurrent,
        [amt]
    )

无需预先汇总到汇总表。我们可以按照上面的措施来处理。

假设有一个名为 \\'Fact\\' 的事实表和一个不同的报价表 \\'Offer\\'。

根据您在"优惠"上的其他过滤器所做的操作,您可能需要改为执行以下操作:

1
2
3
4
5
6
7
Offer Visual Cumulative =
VAR OfferSum =
    ADDCOLUMNS (
        ALLSELECTED ( 'Offer'[Offer] ),
       "amt", CALCULATE ( [Total Amount], ALLEXCEPT ( 'Offer', 'Offer'[Offer] ) )
    )
...

其余的措施将是相同的。

该措施在其 VAR 中是相当自我记录的。第一个 VAR,OfferSum 是一个包含列 (\\'Offer\\'[Offer], [amt]) 的表。这将包括当前视觉对象中显示的所有优惠。 CurrentOfferAmount 是视觉对象当前行/轴标签上的报价金额。 OffersLessThanCurrent 接受 OfferSum 并过滤它。最后,我们迭代 OffersLessThanCurrent 并将数量相加。

这是一个示例:
measure