PowerBI / DAX:无法正确比较两个日期

时间:2018-02-27 18:35:59

标签: powerbi dax

我将此自定义日期作为衡量标准创建:

Start Date = DATE(YEAR(MAX(Loss[dte_month_end]))-1,12,31)

所以这部分在PowerBI中看起来很好,似乎是正确的格式。 enter image description here

所以现在我创建了一个新列,我将查看我的数据以检查记录是否等于上面定义的“开始日期”。

IsStart = IF(Loss[dte_month_end]=[Start Date], TRUE, FALSE)

但奇怪的是所有记录都被评估为false。 我知道在我的实际数据中实际情况并非如此,我可以找到dte_month_end = 12/31/2017的实际记录,如上所示。

有人可以帮助我理解为什么IF语句无法正确评估这个问题吗?我最初认为这可能是DATETIME格式不一致的情况 - 但我故意将两种格式都改为相同而无济于事。

感谢。

Edit1 -----------仅供参考: 这是我的dte_month_end字段具有的格式:

enter image description here

Edit2 - 我尝试将dte_month_end格式更改为Date而不是DateTime,但它似乎仍无效:

enter image description here

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您在计算列中使用了一个度量。执行此操作时,度量的筛选器上下文是表中的行上下文。

要解决此问题,您需要修改度量的过滤器上下文。例如:

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只会查看当前行,而不是表格中的所有行。