如何在Power Query中将日期调整为YYWW格式(ISO周与ISO年)
在Power Query中实现日期转「2位ISO年份+2位ISO周数」格式
核心逻辑
和你Excel公式的逻辑完全匹配:先获取日期对应的ISO周年份(解决年初/年末日期的年份偏差问题),再提取ISO周数,最后将年份取后两位、周数补零为两位后拼接成4位字符串。
具体操作步骤
假设你的数据源中日期列名为日期,按以下步骤操作:
- 确保日期列为日期类型
如果当前日期列是文本格式,先转换为标准日期类型:
= Table.TransformColumns(源, {{"日期", each Date.From(_), type date}})
- 添加自定义列生成目标格式
插入自定义列,使用以下M语言公式:
= Text.End(Text.From(Date.YearOfWeek([日期], Day.Monday, 4)), 2) & Text.PadStart(Text.From(Date.IsoWeekOfYear([日期])), 2, "0")
公式细节说明
Date.YearOfWeek([日期], Day.Monday, 4):返回该日期所在ISO周对应的年份,对应Excel公式中YEAR(A1+26-ISOWEEKNUM(A1))的逻辑,参数4表示以包含1月4日的周为当年第一周,完全符合ISO标准Text.End(_, 2):提取年份字符串的最后两位Date.IsoWeekOfYear([日期]):返回日期的ISO周数,直接对应Excel的ISOWEEKNUM函数Text.PadStart(_, 2, "0"):将周数补零为两位(例如周数3会转为03)
示例验证
输入日期03.02.23(即2023年2月3日):
- ISO周数为3,ISO年份为2023
- 最终生成结果为
2303,和Excel公式输出完全一致
内容的提问来源于stack exchange,提问作者Mari
相关产品推荐
相关产品推荐

