如何计算DAX中的累计总计和%?

Mar*_*lar 3 running-total cumulative-sum dax pareto-chart powerbi

这可能很简单...

我在Power BI中有下面的摘要表,需要构建一个帕累托图,我正在寻找一种创建列“ D”和“ E”的方法...谢谢!

来自“ B”列的计数是我在PBI中基于多个过滤器创建的度量。我已经尝试了一些Calculate / Sum / Filter类型的表达式,但是没有运气。

在此处输入图片说明

我的原始数据看起来像图像#2 ...我有措施来构建汇总表,但“ I”列-运行%-(为此,我还需要每个存储桶中的事件总数)。

不幸的是,我无法成功应用DAXPATTERNS的计算。

在此处输入图片说明

ale*_*eta 5

DAXPATTERNS博客中有一个众所周知的累积计算模式。

尝试使用以下表达式进行Running %测量:

Running % =
CALCULATE (
    SUM ( [Percentage] ),
    FILTER ( ALL ( YourTable), YourTable[Bucket] <= MAX ( YourTable[Bucket] ) )
)
Run Code Online (Sandbox Code Playgroud)

并尝试使用此累积计数度量值:

Cumulative Count =
CALCULATE (
    SUM ( [Count] ),
    FILTER ( ALL ( YourTable ), YourTable[Bucket] <= MAX ( YourTable[Bucket] ) )
)
Run Code Online (Sandbox Code Playgroud)

基本上,在每一行中,您要对小于或等于被评估行中的存储桶值的那些计数或百分比值求和,这将产生累积总数。

更新:与您的模型匹配的可行解决方案。

假设您的事件计数度量定义如下:

Event Count = COUNT(EventTable[Duration_Bucket])
Run Code Online (Sandbox Code Playgroud)

您可以使用CALCULATE函数创建累积计数,该函数使我们可以计算Running %度量:

Cumulative Count =
CALCULATE (
    [Event Count],
    FILTER (
        ALL ( EventTable ),
        [Duration_Bucket] <= MAX ( EventTable[Duration_Bucket] )
    )
)
Run Code Online (Sandbox Code Playgroud)

现在,使用以下方法计算“运行百分比”度量:

Running % =
DIVIDE (
    [Cumulative Count],
    CALCULATE ( [Event Count], ALL ( EventTable ) ),
    BLANK ()
)
Run Code Online (Sandbox Code Playgroud)

您应该在Power BI中得到以下内容:

表格可视化

在此处输入图片说明

条形图可视化

在此处输入图片说明

请注意,我的表达式使用EventTable,您应将其替换为表名。另请注意,该running %行从0到1开始,并且左侧只有一个Y轴。

让我知道是否有帮助。