我在 Power Query 中使用以下查询来创建 ISO 周数:
#"Inserted ISO Week Number" = Table.AddColumn(#"Inserted End of Week", "ISO Week Number", each if Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7)=0 then Number.RoundDown((Date.DayOfYear(#date(Date.Year([Date])-1,12,31))-(Date.DayOfWeek(#date(Date.Year([Date])-1,12,31), Day.Monday)+1)+10)/7) else if (Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7)=53 and (Date.DayOfWeek(#date(Date.Year([Date]),12,31), Day.Monday)+1<4)) then 1 else Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7))
问题是生成的周数只有一位,而我想有两位数的周数格式。
例如:01、02、03 ...等。
在此先感谢您的帮助。
你可以像这样包装你的答案
= Text.PadStart( Text.From( [ISO Week Number] ), 2, "0" )
比如你原来的配方
#"Inserted ISO Week Number" = Table.AddColumn(Source, "ISO Week Number", each Text.PadStart( Text.From(if Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7)=0 then Number.RoundDown((Date.DayOfYear(#date(Date.Year([Date])-1,12,31))-(Date.DayOfWeek(#date(Date.Year([Date])-1,12,31), Day.Monday)+1)+10)/7) else if (Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7)=53 and (Date.DayOfWeek(#date(Date.Year([Date]),12,31), Day.Monday)+1<4)) then 1 else Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date], Day.Monday)+1)+10)/7) ), 2, "0" ))
或更紧凑
#"Inserted ISO Week Number" = Table.AddColumn(Source, "ISO Week Number", each Text.PadStart( Text.From(Number.IntegerDivide(Number.Mod(Number.Mod(28*Number.Mod(Number.IntegerDivide((Number.From([Date]) + 692501) / 7, 1),20871 ) + 4383,146096),1461)/28,1)+1 ), 2, "0" ))
或使用函数
#"Inserted ISO Week Number" = Table.AddColumn(#"Changed Type", "ISO Week Number", each iso([Date]))
功能
(theDate as date) =>
// http://gorilla.bi/power-query/create-iso-week-and-iso-year/ Rick Rothstein
let IWN = Text.PadStart( Text.From(Number.IntegerDivide(Number.Mod(Number.Mod(28*Number.Mod(Number.IntegerDivide((Number.From(theDate) + 692501) / 7, 1),20871 ) + 4383,146096),1461)/28,1)+1 ), 2, "0" ) in IWN
注意这会将您的数字周转换为文本字段