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

PowerBI/DAX:无法正确比较两个日期,powerbi,dax,Powerbi,Dax,我创建了一个自定义日期作为度量: Start Date = DATE(YEAR(MAX(Loss[dte_month_end]))-1,12,31) 因此,这一部分在PowerBI中看起来不错,而且似乎是正确的格式。 因此,现在我创建了一个新列,在该列中我将检查我的数据,以检查一条记录是否等于上面定义的“开始日期” IsStart = IF(Loss[dte_month_end]=[Start Date], TRUE, FALSE) 但奇怪的是,所有记录的计算结果都是假的。 我知道我的实际

我创建了一个自定义日期作为度量:

Start Date = DATE(YEAR(MAX(Loss[dte_month_end]))-1,12,31)
因此,这一部分在PowerBI中看起来不错,而且似乎是正确的格式。

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

IsStart = IF(Loss[dte_month_end]=[Start Date], TRUE, FALSE)
但奇怪的是,所有记录的计算结果都是假的。 我知道我的实际数据并非如此,我可以找到dte_month_end=12/31/2017的实际记录,如上所示

有人能帮我理解为什么IF语句不能正确地计算它吗?我最初认为这可能是DATETIME格式不一致的情况,但我故意将这两种格式更改为相同的格式,但没有任何效果

谢谢

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

编辑2-- 我尝试将dte_month_end格式更改为Date而不是DateTime,但似乎仍然不起作用:


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

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

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


如果不这样做,
MAX
只查看当前行,而不是表中的所有行。

对我来说,这听起来确实像是日期与日期时间的问题。您的
开始日期
肯定是一个日期类型,所以仔细检查
[dte\u month\u end]
也是一个日期类型。@Alexelson是的-它肯定也是一个日期时间字段。我认为作为一个双重检查,如果不是,我将无法在它上使用YEAR()函数作为开始日期度量,而它不会给我一个错误。我想真正的问题是,如果它们都是日期/时间字段,并且我将其设置为具有相同的格式-还有什么可能导致其计算错误?
Start date
定义为日期字段,而不是日期时间字段。您不想将其与DateTime字段匹配。@AlexisOlson这很公平-我刚刚将数据类型更改为Date for dte_month_end,但它的计算仍然不正确。我在“建模”选项卡上做这件事-所以可能不在正确的区域?如果没有,我还有别的地方可以做吗?
Start Date = DATE(YEAR(MAXX(ALL(Loss), Loss[dte_month_end])) - 1, 12, 31)