人生没有彩排
每一天都是现场直播

XF.Calendar.DateTable

语法作用

根据指定的起始年份与结束年份,生成一张能覆盖所有日期的标准日期表;StartDayOfWeek参数用于指定每周的第一天,1:周日,2:周一。

XF.Calendar.DateTable(startYear:int64,endYear:int64,startDayOfWeek:anyref)

函数代码

该函数的实现代码如下:

/// 根据指定的起始年份与结束年份,生成一张能覆盖所有日期的标准日期表;StartDayOfWeek参数用于指定每周的第一天,1:周日,2:周一
FUNCTION XF.Calendar.DateTable = (startYear:int64,endYear:int64,startDayOfWeek:anyref) =>
    ADDCOLUMNS(
        CALENDAR(DATE(startYear,1,1),DATE(endYear,12,31)),
        "Year Number",YEAR([Date]),
        "Year",FORMAT([Date],"yyyy"),
        "Month Number",MONTH([Date]),
        "Month",FORMAT([Date],"mmmm"),
        "Quarter Number",ROUNDUP(MONTH([Date])/3,0),
        "Quarter","Q"&ROUNDUP(MONTH([Date])/3,0),
        "WeekNum",WEEKNUM([Date],startDayOfWeek),
        "WeekDay Number",WEEKDAY([Date],startDayOfWeek),
        "WeekDay",
            VAR WeekDayNum = WEEKDAY([Date],startDayOfWeek)
            RETURN
            SWITCH(
                startDayOfWeek,
                1,
                    SWITCH(WeekDayNum,1,"周日",2,"周一",3,"周二",4,"周三" ,5,"周四",6,"周五" ,7,"周六"), 
                2,
                    SWITCH(WeekDayNum,1,"周一",2,"周二",3,"周三",4,"周四" ,5,"周五",6,"周六" ,7,"周日")
            ),
        "YearMonth Number",YEAR([Date])*100+MONTH([Date]),
        "YearMonth",FORMAT([Date],"yy-mmmm"),
        "YearQuarter Number",YEAR([Date])*10+ROUNDUP(MONTH([Date])/3,0),
        "YearQuarter",YEAR([Date])&"Q"&ROUNDUP(MONTH([Date])/3,0)
    )

应用示例

生成2024年至2025年的日期表。

XF.Calendar.DateTable(2024,2025,2)

结果如下图所示:

赞(0) 打赏
版权声明:本文为夕枫的原创文章,著作权归作者所有,未经允许不得转载
文章名称:《PowerBI DAX自定义函数-XF.Calendar.DateTable》
文章链接:https://www.ximaple.com/posts/1391.html
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册

Operation don't support