从文件夹导入时如何保存路径条件?

How can I save a path criteria when I import from folders?

我从一个带有子文件夹的文件夹中导入了许多文本文件,到目前为止一切正常。我的文件夹在不同时期的许多文件夹中都有相同的文本文件,例如:

AllData1501\Revenues.txt
AllData1502\Revenues.txt
AllData1502\Revenues.txt
.....

我需要在准备收入的查询中使用“201501”等路径中的一个部分。我无法将日期写入 .txt 文件,它是由第三方生成的。

如何在我的文本文件行中加入 FullPath?之后再剪就简单了

(抱歉,如果 Power Query public 版本中还没有以下任何功能——这在今天的 Power BI Designer 中可用!)

从文件夹给我:

使用 Text.FromBinary 和名为 Text 的列添加自定义步骤以获取文件文本:

然后删除除 Folder PathText 之外的所有列:

从那里,用分隔符拆分文件夹路径列 \

然后只保留带有日期的路径列:

接下来,将两个文本列与自定义 : 合并,大功告成!

运行这样设置上面用到的数据:

cd c:\
mkdir alldata
cd alldata
mkdir 201501
mkdir 201502
mkdir 201503
echo Made 0 > 201501\Revenues.txt
echo Made 0 > 201502\Revenues.txt
echo Made 0 > 201503\Revenues.txt

此转换的完整 M 源代码:

let
    Source = Folder.Files("c:\AllData"),
    #"Added Custom" = Table.AddColumn(Source, "Text", each Text.FromBinary([Content])),
    #"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Folder Path", "Text"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Removed Other Columns","Folder Path",Splitter.SplitTextByDelimiter("\"),{"Folder Path.1", "Folder Path.2", "Folder Path.3", "Folder Path.4"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Folder Path.1", type text}, {"Folder Path.2", type text}}),
    #"Removed Other Columns1" = Table.SelectColumns(#"Changed Type",{"Folder Path.3", "Text"}),
    #"Merged Columns" = Table.CombineColumns(#"Removed Other Columns1",{"Folder Path.3", "Text"},Combiner.CombineTextByDelimiter(": ", QuoteStyle.None),"Revenues")
in
    #"Merged Columns"