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]) ) ) |
但是结果表不正确:
我需要的只是让报价按销售额降序排列,然后将当前行的销售额添加到上一行的销售额中,
所以我排除了更接近的数字:
- 第一排:1.5M
- 第二行:2.1M
- 第三排:2.6M 以此类推
但是(可能)由于我的数据结构和(当然)缺乏关于 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,
这是一个示例: