问题:当date是变量时,DAX没有在带操作符的if语句中返回预期结果。
背景:我已检查以确保没有日期或时间差。
日期均为格式(月份的第1天,上午12:00:00)。我有2年(2018和2019:24个不同的日期)。
我试图在计算列中使用<=运算符来确定日期是“之前/相同”到可变日期还是“之后”。我试过将 仅供参考:[Current_Period]度量正常工作,可以按预期返回一个日期 我希望对于月(日期)<=的每一行,结果都是“之前/相同”;
但是,我目前得到的结果是: 仅在ValuesTable [Monyear-Year] = CurrentDate时才“之前/相同”
CurrentDate = 2019年4月 “之后”所有其他月份(23) 请帮助!TestColumn =
var CurrentDate = [Current_Period]
return
IF(
ValuesTable[Month-Year] <= CurrentDate,
"Before/Same", "After"
)
Current_Period =
VAR ThisActMonth =
CALCULATE (
DISTINCT ( Fact_FX[Month-Year] ),
Fact_FX[bool_Latest_FX_Act] = TRUE ()
)
RETURN
ThisActMonth
答案 0 :(得分:1)
正在发生的事情是,您正在计算列的行上下文中评估Current_Period
度量,因此该度量除四月份的行外看不到带有Fact_FX[bool_Latest_FX_Act] = TRUE ()
的行。
解决方案是在该评估上下文之外计算Current_Period
,并且有多种可能的方法。一种快速的解决方案是使用CALCULATE
内部的ALL
function删除行上下文:
Current_Period =
VAR ThisActMonth =
CALCULATE (
DISTINCT ( Fact_FX[Month-Year] ),
ALL( Fact_FX ),
Fact_FX[bool_Latest_FX_Act] = TRUE ()
)
RETURN
ThisActMonth