【发布时间】:2016-12-02 00:16:44
【问题描述】:
我有这种表格,如果看起来,它代表产品的规格
其中第 1 列是 SKU 并用作 ID,第 2 列是我们规范规范标题,值和 0 或 1 作为可选参数(如果错过,则默认为 1)由“~”分隔,ech 选项由 ^ 分隔p>
我想将它拆分为带有 SKU 的表格,每个规格标题作为列标题,值作为它的值
我设法编写此代码以将其拆分为具有深入规范的记录和堆栈,并将每个规范和记录的标题与值分开,以及如何寻求帮助
let
Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
Type = Table.TransformColumnTypes(Source,{{"Part Number", type text}, {"Specifications", type text}}),
#"Replaced Value" = Table.ReplaceValue(Type,"Specification##","",Replacer.ReplaceText,{"Specifications"}),
SplitByDelimiter = (table, column, delimiter) =>
let
Count = List.Count(List.Select(Text.ToList(Table.Column(table, column){0}), each _ = delimiter)) + 1,
Names = List.Transform(List.Numbers(1, Count), each column & "." & Text.From(_)),
Types = List.Transform(Names, each {_, type text}),
Split = Table.SplitColumn(table, column, Splitter.SplitTextByDelimiter(delimiter), Names),
Typed = Table.TransformColumnTypes(Split, Types)
in
Typed,
Split = SplitByDelimiter(#"Replaced Value","Specifications","^"),
Record = Table.ToRecords(Split)
in
Record
【问题讨论】:
-
有一些很好的答案at this question 关于在 excel 中用分隔符分割字符串。那里的第一个 VBA UDF 可以很容易地完成您需要的工作,而且非常轻量级。
-
能否提供一个代码示例表,好吗?使用 Table.FromRecords 或 #table({},{{}})
-
同意 Sergey 的观点,请不要只发布您输入数据的屏幕截图。另外,您能否发布您的代码今天返回的内容,以及您希望它返回的输出内容?
标签: excel powerquery