【问题标题】:How to transpose multiple .txt files separately and combine them into 1 csv file如何分别转置多个 .txt 文件并将它们组合成 1 个 csv 文件
【发布时间】:2021-10-11 13:00:32
【问题描述】:

我正在处理数百个 .txt 文件,我必须将它们组合成 1 个单个 .csv 文件

以上是文本文件的示例格式(只有 2 列但有数百行)

我需要先将每个.txt文件的内容转置,然后将所有结果合并到一个表中,它们都有一个共同的标题行(31330_at、31385_at、31463_s_at等列)

这是我第一次使用电源查询,我不完全确定如何执行此操作,因为我尝试导入所有文件并一次全部转置,但它不起作用。

let
   Source = Folder.Files("Directory),
   #"Filtered Rows" = Table.SelectRows(Source, each ([Extension] = ".TXT")),
   #"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",{"Content", "Name"}),
   #"Invert" = Table.TransformColumns(#"Removed Other Columns", {{"Content", eachTable.Transpose(_)}}),
.....

我已经尝试了上面的代码,但它在#'Invert' 函数中遇到了错误Expression.Error: We cannot convert a value of type Binary to type Table.

供参考,和这个链接https://stackguides.com/questions/57805673/how-to-transpose-multiple-csv-files-and-combine-in-excel-power-query是同一个概念

我该如何解决这个问题?

【问题讨论】:

  • 其实,第一步最简单的做法是将所有的TXT文件提前合并成一个文件(比如在命令提示符下使用copy *.txt output.txt)然后但是你得到数据(读取组合文件或单独读取它们)你得到一张大表。然后使用 Pivot 函数将所有内容排列在适当的列名下

标签: excel powerquery transpose


【解决方案1】:

您似乎已经知道如何从文件夹中提取文件,如您的Source = Folder.Files("Directory) 所示。

合并二进制文件后,您可能会在屏幕上看到类似这样的内容,其中所有 txt 文件一个接一个地附加:

但这不是你想要的。对?您希望根据每个文件的转置视图附加文件。我从您上面的描述中了解到,每个文件的第一列将包含与每个其他文件的第一列相同的信息,并且您希望将第一列的信息用作最初列在列中的信息的标题每个文件 2 个,但将被转置到附加的行中。)

您似乎正在尝试在其他查询下生成并列出的查询中进行转置(可能为您称为目录)。

不要在那里进行转置。相反,请查找名为 Transform Sample File 的查询,该查询应列在 Helper Queries 下,并在其中进行转置。

单击名为“转换示例文件”的查询。

然后点击 Transform -> Transpose,转置你的表格。

然后单击将第一行用作标题的功能区按钮,将第一行设为标题。

然后单击其他查询下列出的较早查询(可能为您称为目录)

...你会看到这个错误信息:

此错误是由于查询的最后一步是尝试使用旧的列名更改类型。因此,请查看屏幕右侧并通过单击 Changed Type 之前的 X 来删除 Changed Type 步骤。 (如果需要,您可以稍后为需要它的列更改列类型。)

那么你应该看到我理解你想要看到的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多