【发布时间】:2020-04-01 17:04:59
【问题描述】:
我想为 Power BI 报告创建一个使用 DAX 的日期表,其中包含周索引号 0、-1、-2 等,以便及时回溯并比较周。我在网上找到了以下内容(我不记得在哪里)
DATE =
GENERATE (
CALENDAR( DATE( YEAR( TODAY() ) - 2, MONTH( TODAY() ), DAY( TODAY()) ), TODAY()),
VAR startOfWeek = 1 // Where 1 is Sunday and 7 is Saturday, thus a 3 would be Tuesday
VAR currentDay = [Date]
VAR days = DAY( currentDay )
VAR months = MONTH ( currentDay )
VAR years = YEAR ( currentDay )
VAR nowYear = YEAR( TODAY() )
VAR nowMonth = MONTH( TODAY() )
VAR dayIndex = DATEDIFF( currentDay, TODAY(), DAY) * -1
VAR todayNum = WEEKDAY( TODAY() )
VAR weekIndex = INT( ROUNDDOWN( ( dayIndex + -1 * IF( todayNum + startOfWeek <= 6, todayNum + startOfWeek, todayNum + startOfWeek - 7 )) / 7, 0 ) )
RETURN ROW (
"day", days,
"month", months,
"year", years,
"day index", dayIndex,
"week index", weekIndex,
"month index", INT( (years - nowYear ) * 12 + months - nowMonth ),
"year index", INT( years - nowYear )
)
)
此报告应每天更新,但我注意到今天 VAR 周指数 计算不正确。今天是 2020 年 4 月 1 日,所以我预计 2020 年 3 月 29 日 - 2020 年 4 月 1 日的周指数为 0,但只有 2020 年 4 月 1 日和 2020 年 3 月 31 日的周指数为 0。
我对这个公式进行了一些尝试,但似乎无法得到始终适用于每天更新的报告的东西。我可能会开始使用 ISO 周和 ISO 年值来进行比较,但我会失去周索引号给我的一些功能。任何人都可以帮助解决一个有效的公式吗?
谢谢!
【问题讨论】:
标签: date powerbi dax powerbi-desktop