DAX 使用 IF 语句运行总日历日期问题

问题描述

我有一个简单的 if 语句来计算日期

IF statement = 
IF(AND(MAX('Calendar'[Date]) > [Last date],SUM('Calendar'[Value1]) > COUNT('Value2'[Value2])),[diff_e_2],IF(AND(MAX('Calendar'[Date]) > [Last date],SUM('Calendar'[Value1]) < COUNT('Value2'[Value2])),[diff_t_2],IF(MAX('Calendar'[Date]) < [Last date],IF(MAX('Calendar'[Date]) = [Last date],[diff_e_2](),[diff_e_2])
)))

[最后日期] = 今天() + 10

这工作正常,我可以得到我想要的图表。但是当我创建一个运行/累计总数时,它在 [上次日期] 日期不起作用。

Running total = 
CALculaTE(([IF statement]),FILTER(ALLSELECTED('Calendar'),'Calendar'[Date]<=MAX('Calendar'[Date])))

否则它可以工作,但在这种情况下 [Last date] 应该加 0,但它会扣除 2。而且大多数情况下它是扣除值并且找不到原因。

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

谢谢。

溴, 乔娜

解决方法

您的运行总计公式非常不正确,假设您的 if 语句返回值而不是字符串,那么公式校正应该有效,否则您正在尝试计算将导致度量错误的字符串:

Running total = 
CALCULATE(([IF statement]),FILTER(ALLSELECTED('Calendar'),'Calendar'[Date]<=MAX('Calendar'[Date])))

应该是:

Running total = 
CALCULATE(sum([IF statement]),FILTER(ALL('Calendar'),'Calendar'[Date]<=MAX('Calendar'[Date])))

最好包含您的数据样本,以防公式修正仍然无效:)