【问题标题】:Week Indexing on a DAX created Date TableDAX 创建日期表上的周索引
【发布时间】: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


    【解决方案1】:

    weekIndex可以更简单的计算,你可以改成:

    VAR weekIndex = ROUNDDOWN((dayIndex + todayNum - startOfWeek - 6)/7;0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多