2015-04-29 1 views
1

Я импортирую много текстовых файлов из папки с подпапками, все работает отлично. Моя папка имеет тот же текстовый файл во многих папках для различных периодов времени, так например .:Как сохранить критерии пути при импорте из папок?

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

мне нужна часть из пути, как «201501» внутри моего запроса, который готовится к выручке. Я не могу записать дату в .txt-файл, который генерируется третьей стороной.

Как я могу присоединиться к FullPath в своих текстовых файлах? Резка после этого проста.

+0

Если вы хотите извлечь любит '201501 'из вашего примера для использования в Power Query, где ваш пример, в Excel? – pnuts

ответ

2

(! Извините, если любой из признаков ниже, не в обнародовании питания Query еще - это работает в конструкторе питание BI сегодня)

Из папки дает мне: Folders

Добавить пользовательский шаг, используя Text.FromBinary с колонкой с именем Text, чтобы получить текст файла: FromBinary

Затем удалите каждый столбец, кроме Folder Path и Text: Columns

Оттуда, разделить столбец Folder Path по ограничителю \ Split

И затем только сохранить столбец пути с датой: Remove2

Далее, объединить два текстовых столбцов с пользовательской :, и все готово!

Merge

Выполнить это настроить данные, используемые выше:

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" 
+0

Большое спасибо за этот прекрасный пример и демонстрационную подготовку! – Gerd