PowerBI/DAX: 无法正确比较两个日期
PowerBI/DAX: Unable to correctly compare two dates
我创建了这个自定义日期作为衡量标准:
Start Date = DATE(YEAR(MAX(Loss[dte_month_end]))-1,12,31)
所以这部分在 PowerBI 中看起来不错,而且似乎是正确的格式。
所以现在我创建了一个新列,我在其中浏览我的数据以检查记录是否等于我上面定义的 "Start Date"。
IsStart = IF(Loss[dte_month_end]=[Start Date], TRUE, FALSE)
但奇怪的是所有记录都被评估为 false。
我知道在我的实际数据中实际上并非如此,我可以找到 dte_month_end = 12/31/2017 的实际记录,如上所示。
有人可以帮助我理解为什么 IF 语句无法正确计算吗?我最初认为这可能是 DATETIME 格式不一致的情况 - 但我故意将两种格式更改为相同无济于事。
谢谢。
编辑 1------------ 仅供参考:
这是我的 dte_month_end 字段的格式:
编辑2 --
我尝试将 dte_month_end 格式更改为 Date 而不是 DateTime,但它似乎仍然不起作用:
发生这种情况是因为您在计算列内使用度量。执行此操作时,度量的筛选上下文是 table.
中的行上下文
要解决此问题,您需要修改度量的筛选器上下文。例如:
Start Date = DATE(YEAR(CALCULATE(MAX(Loss[dte_month_end]), ALL(Loss))) - 1, 12, 31)
或
Start Date = DATE(YEAR(MAXX(ALL(Loss), Loss[dte_month_end])) - 1, 12, 31)
如果不这样做,MAX
只会查看当前行,而不是 table 中的所有行。
我创建了这个自定义日期作为衡量标准:
Start Date = DATE(YEAR(MAX(Loss[dte_month_end]))-1,12,31)
所以这部分在 PowerBI 中看起来不错,而且似乎是正确的格式。
所以现在我创建了一个新列,我在其中浏览我的数据以检查记录是否等于我上面定义的 "Start Date"。
IsStart = IF(Loss[dte_month_end]=[Start Date], TRUE, FALSE)
但奇怪的是所有记录都被评估为 false。 我知道在我的实际数据中实际上并非如此,我可以找到 dte_month_end = 12/31/2017 的实际记录,如上所示。
有人可以帮助我理解为什么 IF 语句无法正确计算吗?我最初认为这可能是 DATETIME 格式不一致的情况 - 但我故意将两种格式更改为相同无济于事。
谢谢。
编辑 1------------ 仅供参考: 这是我的 dte_month_end 字段的格式:
编辑2 -- 我尝试将 dte_month_end 格式更改为 Date 而不是 DateTime,但它似乎仍然不起作用:
发生这种情况是因为您在计算列内使用度量。执行此操作时,度量的筛选上下文是 table.
中的行上下文要解决此问题,您需要修改度量的筛选器上下文。例如:
Start Date = DATE(YEAR(CALCULATE(MAX(Loss[dte_month_end]), ALL(Loss))) - 1, 12, 31)
或
Start Date = DATE(YEAR(MAXX(ALL(Loss), Loss[dte_month_end])) - 1, 12, 31)
如果不这样做,MAX
只会查看当前行,而不是 table 中的所有行。