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

Power Query M中如何根据给定日期计算4周滚动周期的周序号

Power Query 4周滚动周期计算方案

前置说明

你现有日历表已包含符合规则的周序号列:从2019年1月1日起每自然7天为1周,周序号从1连续递加,2021/10/4-2021/10/10对应周序号145。

实现步骤

1. 新增「4周滚动周期内序号」列

打开Power Query编辑器,选中日历表,点击「添加列」→「自定义列」,输入以下公式:

if [周序号] < 145 then null else Number.Mod([周序号] - 145, 4) + 1

公式说明:周序号小于145时返回空值,你也可以根据需求替换为其他标记值;周序号≥145时通过取模运算生成1-4的循环序号,完全匹配你的规则要求。
验证示例:

  • 周序号145:计算逻辑为Number.Mod(0,4)+1=1,返回1
  • 周序号158:计算逻辑为Number.Mod(13,4)+1=2,返回2,和你给出的示例一致

2. 新增「对应任务」列

再次添加自定义列,输入以下公式直接映射任务:

if [4周滚动周期内序号] = null then null else {"A","B","C","D"}{[4周滚动周期内序号] - 1}

公式说明:Power Query列表索引从0开始,因此用滚动序号减1定位对应任务,1对应A、2对应B、3对应C、4对应D。

无周序号列时直接按日期计算方案

如果不想依赖现有周序号列,也可以直接基于日期列一次性算出对应任务,自定义列公式如下:

let
  基准日期 = #date(2019,1,1),
  间隔天数 = Duration.Days([日期] - 基准日期),
  周序号 = Number.RoundDown(间隔天数 / 7, 0) + 1
in
  if 周序号 < 145 then null else {"A","B","C","D"}{Number.Mod(周序号 - 145, 4)}

内容的提问来源于stack exchange,提问作者Colin-G-Davidson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:45:04