excel中扩大范围

Nai*_*iky 1 excel excel-formula

您好,我有一个 Excel 文件,其中有一列包含邮政编码范围

在此输入图像描述

我有近 7000 个范围,我想扩展以便每行有 1 个邮政编码。如果可能的话,保留相应的日期和服务,但如果没有,我会对延长的拉链列感到满意

Jvd*_*vdV 5

公式:

在此输入图像描述

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 方面更有经验的人能够提供更好的解决方案。