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

Excel Power Query批量将WXX.YYYY格式周数转换为日期

在Power Query中批量转换Wxx.yyyy格式周数为标准日期

以下是对应你Excel公式逻辑的Power Query实现步骤,无需在Excel中额外写公式:

  1. 导入数据到Power Query

    • 将Wxx.yyyy格式的周数数据复制到Excel后,选中数据区域,点击「数据」选项卡 → 「从表格/区域」(若未转换为表格,按提示确认转换),进入Power Query编辑器。
  2. 添加自定义转换列

    • 点击「添加列」选项卡 → 「自定义列」,在弹出的对话框中输入以下M语言代码(注意将[WeekCode]替换为你实际的列名):
      = let
          YearNum = Number.From(Text.AfterDelimiter([WeekCode], ".")),
          WeekNum = Number.From(Text.Remove(Text.BeforeDelimiter([WeekCode], "."), "W")),
          FirstDayOfYear = #date(YearNum, 1, 1),
          WeekdayFirstDay = Date.DayOfWeek(FirstDayOfYear, Day.Monday) + 1,
          CalculatedDate = Date.AddDays(FirstDayOfYear, -WeekdayFirstDay + WeekNum * 7),
          LastDayOfYear = #date(YearNum + 1, 1, 0)
        in
          Date.From(List.Min({CalculatedDate, LastDayOfYear}))
      
  3. 验证并加载数据

    • 点击「确定」后,新生成的自定义列会显示转换后的标准日期。你可以右键删除原周数列,然后点击「关闭并上载」将处理后的数据导回Excel。

代码逻辑说明

  • YearNum:提取格式中的年份(如W19.2023中的2023)
  • WeekNum:提取周数并去除前缀"W"(兼容一位数周数,如W5.2023)
  • FirstDayOfYear:生成目标年份的1月1日
  • WeekdayFirstDay:对应Excel的WEEKDAY(date,2),计算1月1日是周几(周一为1)
  • CalculatedDate:按原Excel公式逻辑计算周数对应的日期
  • LastDayOfYear:生成目标年份的12月31日(对应Excel的DATE(year+1,1,0))
  • List.Min:确保周数过大时(如W53.2025)不会跨到下一年,取计算日期与年底日期的较小值

内容的提问来源于stack exchange,提问作者Marcel Huňady

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:52:54