计算汇总 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 不正确:
我需要的只是按销售额降序排列报价,然后将当前行的销售额添加到上一行的销售额,
所以我排除了接近以下的数字:
- 第一行:1.5M
- 第二行:2.1M
- 第3行:2.6M等等
但是(也许)由于我的数据结构和(当然)缺乏对 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
并将金额相加。
这是一个示例:
我在计算 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 不正确:
我需要的只是按销售额降序排列报价,然后将当前行的销售额添加到上一行的销售额,
所以我排除了接近以下的数字:
- 第一行:1.5M
- 第二行:2.1M
- 第3行:2.6M等等
但是(也许)由于我的数据结构和(当然)缺乏对 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
并将金额相加。
这是一个示例: