1

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

AllData\201501\Revenues.txt
AllData\201502\Revenues.txt
AllData\201502\Revenues.txt
.....

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

如何在我的文本文件行上加入 FullPath?之后切割它很简单。

4

1 回答 1

2

(很抱歉,如果 Power Query 的公开版本中尚未包含以下任何功能 - 这适用于今天的 Power BI 设计器!)

从文件夹给我: 文件夹

添加一个自定义步骤,使用Text.FromBinary名为Text获取文件文本的列: 来自二进制

然后删除除Folder Pathand之外的每一列Text列

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

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

接下来,将两个文本列与 custom 合并:,你就完成了!

合并

运行它来设置上面使用的数据:

cd c:\
mkdir alldata
cd alldata
mkdir 201501
mkdir 201502
mkdir 201503
echo Made $100 > 201501\Revenues.txt
echo Made $200 > 201502\Revenues.txt
echo Made $300 > 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"
于 2015-04-30T01:04:36.507 回答