如何批量转置和合并多个xls文件?

问题描述 投票:0回答:2

我有30多个与此类似的独立.xls文件:

。xls 1:

a   11  22  33  54
b   2   44   4  5
c   3   4    5  3

。xls 2

a   12  22  35  58
b   2   44   4  5
c   3   4    5  3

我想转置和合并它们(可能通过Power Query?),所以它们看起来像这样:

a     b    c
11    2    3
22    44   4
33    4    5
54    5    3
12    2    3
22    44   4
35    4    5
58    5    3

我该如何做?非常感谢。

excel powerquery xls
2个回答
0
投票

尝试一下。

  1. 将您的excel文件放在同一文件夹中。
  2. 单击获取数据,然后单击来自文件,然后单击来自文件夹。
  3. 或者输入其中包含excel文件的文件夹的路径,或者单击浏览按钮,然后使用excel导航到您的文件夹文件,然后选择该文件夹,然后单击“确定”,然后单击“确定”。
  4. 单击转换数据按钮。
  5. 单击“扩展名”列中的下拉箭头按钮,然后单击在文本过滤器和等于...上,然后键入.xls(带点)在第一个等号右边的文本框中,然后单击确定。
  6. 单击“内容”列中的双下箭头按钮。
  7. 选择要使用的通用表,然后单击确定。
  8. 单击名为转换样本文件的查询。
  9. 单击变换,然后单击移调。
  10. 单击转换,然后单击将第一行用作标题。
  11. 单击与您的excel文件夹相同名称的查询,然后在其他查询下列出。
  12. 删除右侧的最后一个(很可能是唯一的)“更改类型”应用步骤窗格。

0
投票

尝试以下;假设数据在Sheet1上然后过滤掉其他标题

let Source = Folder.Files("C:\directory\subdirectory"),
#"Filtered Rows" = Table.SelectRows(Source, each ([Extension] = ".xls")),
#"Pull Data" = Table.AddColumn(#"Filtered Rows", "Data", each Excel.Workbook([Content], null, true){[Item="Sheet1",Kind="Sheet"]}[Data]),
Invert = Table.TransformColumns(#"Pull Data", {{"Data", each Table.Transpose(_)}}),
#"Removed Columns" = Table.RemoveColumns(Invert,{"Content", "Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
MaxColumns = List.Max(List.Transform(#"Removed Columns"[Data], each Table.ColumnCount(_))),
#"Expanded Content" = Table.ExpandTableColumn(#"Removed Columns", "Data", List.Transform({1..MaxColumns}, each "Column" & Number.ToText(_))),
#"Promoted Headers" = Table.PromoteHeaders(#"Expanded Content", [PromoteAllScalars=true])
in #"Promoted Headers"
© www.soinside.com 2019 - 2024. All rights reserved.