You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBI计算列计算财年起始日期返回1904年异常值问题

问题原因分析
  • 第一层错误:嵌套使用了多余的YEAR()函数。sales[close_date].[Year]作为日期层次结构的年份成员,已经直接返回整数类型的年份值(比如2016年7月31日对应的返回值为2016)。而YEAR()函数仅支持日期类型入参,传入整数2016时,DAX会将该整数视为日期序列值(即基准日期之后的天数偏移),解析后得到的日期年份为1905,减1后就得到了异常的1904年。
  • 第二层错误:错误对月、日参数使用MONTH()、DAY()函数。DATE函数的第二、第三参数本身就接收整数类型的月份、日期值,直接传入12、22即可。MONTH()、DAY()仅接收日期类型参数,你直接传入整数12、22时,会被解析为基准日期偏移12天、22天对应的日期,取月份得到1、取日得到21,最终拼接出你看到的1904年1月21日的错误结果。
正确实现方案

如果你需要所有日期对应的财年起始日均为所属公历年的前一年12月22日,直接使用以下代码即可:

Year Start = DATE(YEAR(sales[close_date]) - 1, 12, 22)

如果需要按常规财年规则分段(即当年12月22日及之后的日期,财年起始日为当年12月22日),可以使用以下逻辑:

Year Start = 
VAR CurDate = sales[close_date]
VAR CurYear = YEAR(CurDate)
VAR CurYearFyStart = DATE(CurYear, 12, 22)
RETURN
IF(CurDate < CurYearFyStart, DATE(CurYear - 1, 12, 22), CurYearFyStart)

内容的提问来源于stack exchange,提问作者FrostyDuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:39:02