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

Power Query中MM/DD格式日期补全正确年份的实现问题咨询

Power Query MM/DD字符串转完整日期(含跨年逻辑)

原有代码报错原因

  • 误用Date.Month/Date.Day函数:这两个函数仅支持日期/时间类型入参,直接传入文本会触发类型错误
  • 拆分逻辑不稳定:用Text.Start/Text.End硬切字符长度,遇到单数字月份(如1/5)就会错位报错

最终实现代码

在Power Query编辑器中添加自定义列,粘贴以下代码即可:

let
    // 按斜杠拆分MM/DD字符串,转成数值型的月、日
    SplitDate = Text.Split([STATUS DATE], "/"),
    InputMonth = Number.From(SplitDate{0}),
    InputDay = Number.From(SplitDate{1}),
    // 获取当前系统时间的年、月
    CurrentYear = Date.Year(DateTime.LocalNow()),
    CurrentMonth = Date.Month(DateTime.LocalNow()),
    // 跨年逻辑处理:1月遇到10/11/12月日期,自动归属上一年
    FinalYear = if CurrentMonth = 1 and InputMonth >= 10 then CurrentYear - 1 else CurrentYear
in
    // 输出日期,非法格式返回空值避免查询报错
    try #date(FinalYear, InputMonth, InputDay) otherwise null

逻辑说明

  • 按分隔符拆分的逻辑兼容单/双数字的月份、日期格式,容错率远高于硬切字符长度的方案
  • 跨年逻辑完全匹配需求:仅当当前为1月时,才会把四季度的日期归属到上一年,其余场景默认取当前年
  • 若需要自定义非法格式的返回值,可把代码末尾的null替换为你需要的占位值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:45:05