DAX 中的 IsoWeekYear
Posted
技术标签:
【中文标题】DAX 中的 IsoWeekYear【英文标题】:IsoWeekYear within DAX 【发布时间】:2021-05-19 18:14:05 【问题描述】:是否有办法在 DAX 中创建 IsoWeekYear?
我在 excel 中使用以下内容进行创建,但是我很难在 PowerBI 中使用它
=YEAR(DATE(YEAR(TODAY()-WEEKDAY(TODAY()-1)+4),1,1)-MOD((DATE(YEAR(TODAY()-WEEKDAY(TODAY()-1) +4),1,1)-2),7)+(7*IF(MOD((DATE(YEAR(TODAY()-WEEKDAY(TODAY()-1)+4),1,1)-2) ,7)>3,1,0))+7)
【问题讨论】:
【参考方案1】:您需要使用 DAX WEEKNUM 函数。它具有 ISO 8601 周的可选参数。选项 21 将返回 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,或者将它们分开,以您需要的任何类型。
【讨论】:
感谢您的支持。我不确定这就是我的意思。例如 2019 年 12 月 31 日,需要报告为 2020 年。正常的 =YEAR() 公式没有 ISO 功能。根据 ISO 标准,一周也属于哪一年。 *感谢编辑! 更新了,我还没写完不小心保存了答案 我正在使用添加列方法添加一个表,无论如何我可以重写它以在其中工作吗? ADDCOLUMNS ( 日历 (DATE(2017,1,1), DATE(2021,12,31)), "DateAsInteger", FORMAT ([Date], "YYYYMMDD"), "Year", YEAR ([Date]), " Monthnumber", FORMAT ( [Date], "MM" )) 更新:创建表时,我设法让它在 ADDCOLUMNS 函数中工作。 "IsoWeekYear", IF(WEEKNUM([Date], 21) 50, YEAR ([Date])+1, IF(WEEKNUM([Date], 21) >50 && WEEKNUM( [日期]) @tg00222 不错!以上是关于DAX 中的 IsoWeekYear的主要内容,如果未能解决你的问题,请参考以下文章