如何计算 DAX 中的累计总计和百分比?
Posted
技术标签:
【中文标题】如何计算 DAX 中的累计总计和百分比?【英文标题】:How to calculate cumulative Total and % in DAX? 【发布时间】:2017-03-06 17:24:07 【问题描述】:这可能很简单……
我在 Power BI 中有以下汇总表,需要构建一个帕累托图,我正在寻找一种创建列“D”和“E”的方法......提前致谢!
“B”列的计数是我在 PBI 中基于多个过滤器创建的度量。我已经尝试了一些计算/求和/过滤类型的表达式,但没有成功。
我的原始数据看起来像图片 #2...我有构建汇总表的措施,但列“I”除外 - 运行百分比 - (为此我还需要每个存储桶的累积事件总数) .
很遗憾,我无法成功应用来自 DAXPATTERNS 的计算。
【问题讨论】:
【参考方案1】:DAXPATTERNS 博客中有一个众所周知的累积计算模式。
试试这个表达式 Running %
度量:
Running % =
CALCULATE (
SUM ( [Percentage] ),
FILTER ( ALL ( YourTable), YourTable[Bucket] <= MAX ( YourTable[Bucket] ) )
)
并试试这个累积计数度量:
Cumulative Count =
CALCULATE (
SUM ( [Count] ),
FILTER ( ALL ( YourTable ), YourTable[Bucket] <= MAX ( YourTable[Bucket] ) )
)
基本上,在每一行中,您将那些小于或等于评估行中的桶值的计数或百分比值相加,从而产生累计总数。
更新:与您的模型相匹配的可行解决方案。
假设您的事件计数度量定义如下:
Event Count = COUNT(EventTable[Duration_Bucket])
您可以使用CALCULATE
函数创建一个累积计数,它可以让我们计算Running %
度量:
Cumulative Count =
CALCULATE (
[Event Count],
FILTER (
ALL ( EventTable ),
[Duration_Bucket] <= MAX ( EventTable[Duration_Bucket] )
)
)
现在使用以下方法计算运行百分比度量:
Running % =
DIVIDE (
[Cumulative Count],
CALCULATE ( [Event Count], ALL ( EventTable ) ),
BLANK ()
)
你应该在 Power BI 中得到类似的东西:
表格可视化
条形图可视化
请注意,我的表达式使用 EventTable
,您应该将其替换为您的表格名称。另请注意running %
线从 0 到 1 开始,左侧只有一个 Y 轴。
如果这有帮助,请告诉我。
【讨论】:
谢谢亚历杭德罗,我已经更新了最初的问题以提供我的上下文...不幸的是,您引用的公式不起作用,可能是因为我的数据结构...汇总表只是我可以从我的原始数据中构建的东西。 @MarceloAguilar,我已经更新了我的答案,尝试实施编辑后的答案。 我只将 ALL 更改为 ALLSELECTED,现在工作正常。谢谢! 您好,从 2019 年开始!如果您希望它在“duration_bucket”处于其最大值时开始累积“count”字段,您将如何执行此操作有什么想法吗?也就是说,我能否以某种方式将“duration_bucket”按降序排序,然后开始累积“count”值?以上是关于如何计算 DAX 中的累计总计和百分比?的主要内容,如果未能解决你的问题,请参考以下文章