ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 615|回复: 7

[求助] 如何在PowerBI自建满足条件的日期表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-7-8 19:24 | 显示全部楼层 |阅读模式
请问如何PowerBI中自建一张表随着日期的更新自动更新2019年到后面所属的年份和月份啊,月份的规则是除了每年的12月,其余月份是当月的最后一天减4算当月,剩下的4天算下月,最后一天假设叫T,即为T-4,
比如:
9月则是8.28-9.26
10月则是9.27-10.27
11月则是10.28-11.26
12月则是11.27-12.31
我现在是手工笨办法去建一个日期表然后判断年份月份 月份表.rar (15.77 KB, 下载次数: 3)





TA的精华主题

TA的得分主题

发表于 2022-7-8 20:34 | 显示全部楼层
有其他含有日期列的表的情况下,可以用这个

日期表 =
GENERATE (
    CALENDARAUTO (),
    VAR currentDay = [Date]
    VAR year =
        YEAR ( currentDay )
    VAR quarter =
        "Q" & FORMAT ( currentDay, "Q" )
    VAR month =
        FORMAT ( currentDay, "MM" )
    VAR day =
        DAY ( currentDay )
    VAR weekid =
        WEEKDAY ( currentDay, 2 )
    RETURN
        ROW (
            "年度", year,
            "季度", quarter,
            "月份", month,
            "日", day,
            "年度季度", year & quarter,
            "年度月份", year & month,
            "星期几", weekid
        )
)

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-7-8 22:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Eric0236 发表于 2022-7-8 20:34
有其他含有日期列的表的情况下,可以用这个

日期表 =

这个只是创建日期表,但是不能判断最后几天属于上月还是下月吧

TA的精华主题

TA的得分主题

发表于 2022-7-9 08:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
日期表新建列
调整月份 =
IF (
    [Date] <= ENDOFMONTH ( '日期表'[Date] ) - 4
        || [年] < YEAR ( ENDOFMONTH ( '日期表'[Date] ) + 5 ),
    MONTH ( [Date] ),
    MONTH ( [Date] + 5 )
)

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-7-9 09:41 | 显示全部楼层
Eric0236 发表于 2022-7-9 08:15
日期表新建列
调整月份 =
IF (

|| [年] < YEAR ( ENDOFMONTH ( '日期表'[Date] ) + 5 ), 这个是表示什么意思呢

TA的精华主题

TA的得分主题

发表于 2022-7-9 09:49 | 显示全部楼层
哈哈,这里不需要EndOfMonth了,只需要日期+5判断年份就行了,12月最后4天加5之后就是第二年了,而前11个月最后4天加5还是当年,所以把这个也作为if的判断条件之一,和前面的是或关系

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-23 07:18 | 显示全部楼层
Eric0236 发表于 2022-7-9 08:15
日期表新建列
调整月份 =
IF (

'日期表'[Date] 表中假如没有最后一天比如31号,就不能得到31-4=27这天的数据吧,但是汇率如过27号这天不是假期的话就是有数据的

TA的精华主题

TA的得分主题

发表于 2022-9-23 11:54 | 显示全部楼层
天道酬勤y 发表于 2022-9-23 07:18
'日期表'[Date] 表中假如没有最后一天比如31号,就不能得到31-4=27这天的数据吧,但是汇率如过27号这天 ...

通常都需要建立规范的日期表,这个日期表起始是某年的1月1日,结束是某年的12月31日,列字段则根据实际需求增减
即便事实表中的日期只是一小段,仍然需要一个完整的日期表作为时间维度,在模型中和事实表建立关系,这样可以避免很多问题
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 13:23 , Processed in 0.037657 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表