如何在DAX中将4位年份数字格式化为正确的日期类型?
解决方案
问题根源是Power BI(及Excel体系)会默认将纯数字转日期时,把数字识别为1900年1月1日之后的天数序列,2020天对应的日期就是1905年左右,因此出现显示错误,可按以下任意一种方式处理:
方法1:Power Query中转换为标准日期(最推荐,适配时间智能函数)
- 进入Power Query编辑器,找到对应的年份数值列
- 新增自定义列,填入公式:
#date([你的年份列名称], 1, 1),将占位符替换为你自己的列名,该公式会直接把年份数值转换为对应年份1月1日的完整日期 - 将新列的数据类型设置为「日期」,日期格式选择
yyyy类型即可,放到视觉对象中会直接显示2020、2021等正确年份
方法2:DAX新建计算列(无需修改数据源查询逻辑)
- 在Power BI数据视图中选中对应表,新建计算列,填入公式:
正确年份日期 = DATE([你的年份列名称], 1, 1) - 同样将该列格式设置为
yyyy年份格式即可使用
方法3:直接保留数值类型(仅需展示年份时最简单)
如果不需要用该列做时间智能计算,仅用于维度展示:
- 直接将该列的数据类型改回「整数」或「文本」,不需要设置为日期类型,放到视觉对象中即可直接显示原始年份数值
提示:如果后续需要用该列做同比、环比等时间维度计算,必须将其转换为完整的日期类型,否则时间智能函数无法正常运行。
内容的提问来源于stack exchange,提问作者Sabatino Ognibene
相关产品推荐
相关产品推荐

