我将文件与销售和数量列合并。 每个文件包含 2 或 3 年的数据。文件列示例: 客户| 2010 年销售 |数量 | 2011年销售|数量 问题是名称数量不包含年份。我想重命名这些列以获得 2010 年数量、2011 年数量等。 因此,从前一列的名称中取出 4 位数字,并将其与字符串数量连接起来。 当然是在电量查询中。
我尝试了以下方法: 对于每个表,这意味着在“转换文件”步骤中==> 获取列表中的列名称 使用索引列方法访问前一个值 单词数量和前一列名称的数字的串联
这可行,但很挑剔 有没有更简单的M代码?
我建议目标是有一列用于销售,一列用于数量,一列用于年份。这是建议的方法。
_
再次选择列以标准化数量列let
Source = Csv.Document(File.Contents("..\example.csv"), [Delimiter = ",", Columns = 5, Encoding = 65001, QuoteStyle = QuoteStyle.None]),
#"Promoted headers" = Table.PromoteHeaders(Source, [PromoteAllScalars = true]),
#"Unpivoted other columns" = Table.UnpivotOtherColumns(#"Promoted headers", {"cutomer"}, "Attribute", "Value"),
#"Split column by delimiter" = Table.SplitColumn(#"Unpivoted other columns", "Attribute", Splitter.SplitTextByDelimiter(" "), {"Column", "Year"}),
#"Split column by delimiter 1" = Table.SplitColumn(#"Split column by delimiter", "Column", Splitter.SplitTextByDelimiter("_"), {"Column", "Column.2"}),
#"Removed columns" = Table.RemoveColumns(#"Split column by delimiter 1", {"Column.2"}),
#"Filled down" = Table.FillDown(#"Removed columns", {"Year"}),
#"Pivoted column" = Table.Pivot(Table.TransformColumnTypes(#"Filled down", {{"Column", type text}}), List.Distinct(Table.TransformColumnTypes(#"Filled down", {{"Column", type text}})[Column]), "Column", "Value")
in
#"Pivoted column"