DAX 中的 IsoWeekYear

IsoWeekYear within DAX

有没有办法在 DAX 中创建 IsoWeekYear?

我在 excel 中使用以下内容来创建,但是我很难在 PowerBI

中使用它

=YEAR(DATE(YEAR(TODAY()-WEEKDAY(TODAY()-1)+4),1,1)-MOD((DATE(YEAR(TODAY()-WEEKDAY(今天()-1)+4),1,1)-2),7)+(7*IF(MOD((日期(年(今天()-工作日(今天()-1)+ 4),1,1)-2),7)>3,1,0))+7)

您需要使用 DAX WEEKNUM 函数。它有一个用于 ISO 8601 周的可选参数。选项 21 将 return ISO 周

ISO Week Number = WEEKNUM([DateColumn], 21)

要获取 ISO 年,您还需要日历周和年列。

Calendar Week = WEEKNUM([DateColumn])
Year = YEAR([DateColumn])

Year Week = IF([ISO Week Number]<5 && [Calendar Week] > 50,
     [Year]+1,
     IF([ISO Week Number] >50 && [Calendar Week]<5,
          [Year]-1,
          [Year]))

您可以在一列中完成所有这些,而不是在此示例中将它们分开并连接,年和周数为 202101,或者将它们分开,以您需要的任何类型。