0

我有内联 PowerQuery 来自动化我的每周报告。由于我是电源查询的新手,因此我跟进了本教程并尝试添加一个自定义列,以便我可以使用它来查看每周的改进,问题是添加的列没有命名为“Week”,而是称为文件名。在这个网页上,第二个参数是列名。我找不到为什么列名是文件名而不是名称“周”。

let ExcelFile = (FilePath, FileName) =>
let
    Source = Folder.Files(FilePath),
    File = Source{[#"Folder Path"=FilePath,Name=FileName]}[Content],
    ImportedExcel = Excel.Workbook(File),
    Sheet1 = ImportedExcel{[Name="Page1_1"]}[Data],
    TableWithWeek = Table.AddColumn(Sheet1,"Week", each FileName),
    TableWithoutHeader = Table.Skip(TableWithWeek,3),
    FirstRowAsHeader = Table.PromoteHeaders(TableWithoutHeader)
in
    FirstRowAsHeader
in
    ExcelFile
4

1 回答 1

0

这个电话:

FirstRowAsHeader = Table.PromoteHeaders(TableWithoutHeader)

将使用第一行中的值替换您拥有的列名。由于“周”列下的第一个值是文件名,因此您的表现在将使用该文件名作为列名。

您可以通过在使用 PromoteHeaders 后添加自定义列来解决此问题:

let ExcelFile = (FilePath, FileName) =>
    let
        Source = Folder.Files(FilePath),
        File = Source{[#"Folder Path"=FilePath,Name=FileName]}[Content],
        ImportedExcel = Excel.Workbook(File),
        Sheet1 = ImportedExcel{[Name="Page1_1"]}[Data],
        TableWithoutHeader = Table.Skip(Sheet1, 3),
        FirstRowAsHeader = Table.PromoteHeaders(TableWithoutHeader),
        TableWithWeek = Table.AddColumn(FirstRowAsHeader,"Week", each FileName),
    in
        TableWithWeek
in
    ExcelFile
于 2015-05-07T22:56:08.743 回答