计算汇总 table 列的累计总和

Calculate cumulative sum of summarized table column

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

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

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

我发现的许多论坛和 Whosebug 答案都指导我使用以下列累计和公式:

cum_sales = 
    CALCULATE(
        sum([offer_sales]);
        FILTER(
            ALLSELECTED(summary);
            summary[offer_sales] <= max( summary[offer_sales])
        )
    )

但是结果 table 不正确:

我需要的只是按销售额降序排列报价,然后将当前行的销售额添加到上一行的销售额,

所以我排除了接近以下的数字:

但是(也许)由于我的数据结构和(当然)缺乏对 PowerBI 工作原理的了解,我没有得到正确的结果...

Total Amount = SUM ( 'Fact'[Amount] )
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]
    )

无需预先汇总到摘要 table。我们可以按照上述措施处理。

这假设一个名为 'Fact' 的事实 table 和 table 个不同的报价,'Offer'。

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

Offer Visual Cumulative = 
VAR OfferSum =
    ADDCOLUMNS (
        ALLSELECTED ( 'Offer'[Offer] ),
        "amt", CALCULATE ( [Total Amount], ALLEXCEPT ( 'Offer', 'Offer'[Offer] ) )
    )
...

其余的措施是一样的。

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

这是一个示例: