PowerBI:根据 DATEDIFF 条件正确聚合测量

标签 powerbi conditional-statements dax aggregation datediff

我有下表:

BaseTable

它代表具有特定类别的进程。

并且在 TIMESTAMP 列上还有一个日期表。

我想显示一个基于另一个度量的度量,该度量计算所选日期之前的日期差异。

首先,这是我计算日期差异的方法:

AGE = 
VAR SELECTED_DATE = CALCULATE(MAX(DATUM[Date]), ALLSELECTED(DATUM))
VAR STARTDATE_PROCESS = Calculate(MAX(Workflow[MIN_TIMESTAMP]),DATUM[Date]<=MAX(DATUM[Date]), ALL(DATUM[Date]))
RETURN
DATEDIFF(STARTDATE_PROCESS,SELECTED_DATE,DAY)

现在我想使用一个取决于 AGE 结果的度量,例如

NEW = IF([AGE]<=3,CALCULATE(COUNT(Workflow[PROCESS]),DATUM[Date]<=MAX(DATUM[Date]),ALL(DATUM)))

OLD = IF([AGE]>3,CALCULATE(COUNT(Workflow[PROCESS]),DATUM[Date]<=MAX(DATUM[Date]),ALL(DATUM)))

测量 AGE、OLD 和 NEW 与基表类似:

Measures

如您所见,聚合无法正常工作:

Result_Wrong

但应该是这样的

Result_Correct

知道如何解决这个问题吗?

谢谢!

最佳答案

所以问题是小计是在完全不同的上下文中计算的,并且因为您的年龄度量是基于 MAX(Workflow[MIN_TIMESTAMP]) ,所以不会考虑到可以是多个进程。

要执行您想要的操作,您需要更改 NewOld 度量以对每个进程执行聚合,然后返回结果。像这样的事情:

New_agg = 
VAR tbl = ADDCOLUMNS(CALCULATETABLE(VALUES(Workflow[Process]), ALL('Date')), "age", [Age], "count_process", CALCULATE(COUNT(Workflow[Process]), ALL('Date')))
RETURN SUMX(tbl, IF([age]<=3, [count_process]))

Demo File

关于PowerBI:根据 DATEDIFF 条件正确聚合测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69613404/

相关文章:

azure - 使用 RLS 进行流分析的理想 Azure/Power BI 架构

powerbi - 在 DAX 中,为什么在应用于组时 ALL 过滤器会被覆盖

sql - 可以将.SQL文件加载到Power bi吗?

excel - 电源查询从下面的行中减去上面的行

powerbi - Power bi 计算比率

PowerBI:如何获取表中列的不同计数,同时对许多列分别进行分组

python - 如何在 powerBI 上运行 Python 脚本

internet-explorer-9 - Internet Explorer 10 框阴影大小

list - Scala - future 列表首先完成有条件

r - 结合基于多个条件的观察