Nai*_*iky 1 excel excel-formula
您好,我有一个 Excel 文件,其中有一列包含邮政编码范围
我有近 7000 个范围,我想扩展以便每行有 1 个邮政编码。如果可能的话,保留相应的日期和服务,但如果没有,我会对延长的拉链列感到满意
公式:
在E1:
=REDUCE(A1:C1,ROW(A2:A6),LAMBDA(x,y,LET(z,INDEX(A:A,y),VSTACK(x,IFERROR(EXPAND(SEQUENCE(RIGHT(z,5)-LEFT(z,5)+1,,--LEFT(z,5)),,3),INDEX(A:C,y,{1,2,3}))))))
Run Code Online (Sandbox Code Playgroud)
电源查询:
M 代码:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ZipCode", type text}, {"Days", Int64.Type}, {"Service", Int64.Type}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type",each [ZipCode], each Text.Combine(List.Transform(List.Numbers(Number.FromText(Text.Start([ZipCode],5)),1+Number.FromText(Text.Range([ZipCode],6))-Number.FromText(Text.Start([ZipCode],5))), each Number.ToText(_)),"|"),Replacer.ReplaceText,{"ZipCode"}),
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Replaced Value", {{"ZipCode", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "ZipCode"),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"ZipCode", Int64.Type}})
in
#"Changed Type1"
Run Code Online (Sandbox Code Playgroud)
也许在 PQ 方面更有经验的人能够提供更好的解决方案。