Страницы: 1
RSS
PQ преобразование txt файла
 
Приветствую
Есть txt фаил с данными в формате как показано в примере. Мне нужно через PQ загрузить значения в два столбца Фаил, Кол-во, но данные в файле представлены в строку.
Подскажите пожалуйста, как можно преобразовать такой txt фаил в таблицу?

Код
D:\socialkit\473375574.log:
9
D:\socialkit\473775025.log:
2
 
Добрый день!
Код
let
    Источник = Table.FromColumns({Lines.FromBinary(File.Contents("C:\1\пример.txt"), null, null, 1251)}),
    #"Добавлен индекс" = Table.AddIndexColumn(Источник, "Индекс", 1, 1),
    #"Добавлен индекс1" = Table.AddIndexColumn(#"Добавлен индекс", "Индекс.1", 0, 1),
    #"Объединенные запросы" = Table.NestedJoin(#"Добавлен индекс1",{"Индекс"},#"Добавлен индекс1",{"Индекс.1"},"Добавлен индекс1",JoinKind.LeftOuter),
    #"Развернутый элемент Добавлен индекс1" = Table.ExpandTableColumn(#"Объединенные запросы", "Добавлен индекс1", {"Column1"}, {"Column1.1"}),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Развернутый элемент Добавлен индекс1", each Text.Contains([Column1], ":")),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Строки с примененным фильтром",{"Индекс", "Индекс.1"})
in
    #"Удаленные столбцы"
 
да не, можно проще:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Custom1 = Table.FromRows(List.Split(Source[data],2), {"Файл", "Значение"})
in
    Custom1

Кнопками тоже можно без джойна:
Код
// Table1 (2)
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Added Index" = Table.AddIndexColumn(Source, "Индекс", 0, 1),
    #"Inserted Modulo" = Table.AddColumn(#"Added Index", "Остаток от деления", each Number.Mod([Индекс], 2), type number),
    #"Integer-Divided Column" = Table.TransformColumns(#"Inserted Modulo", {{"Индекс", each Number.IntegerDivide(_, 2), Int64.Type}}),
    #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Integer-Divided Column", {{"Остаток от деления", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(#"Integer-Divided Column", {{"Остаток от деления", type text}}, "ru-RU")[#"Остаток от деления"]), "Остаток от деления", "data"),
    #"Removed Columns" = Table.RemoveColumns(#"Pivoted Column",{"Индекс"})
in
    #"Removed Columns"
F1 творит чудеса
 
Максим Зеленский, второй вариант понял логику.
Первый как я понимаю, только умея писать код. Спасибо огромное
Anton555, Спасибо огромное!  
 
Максим Зеленский, вторым вариантом воспользовался. По первому есть вопрос - можно такой же алгоритм заюзать, если считываются данные не из таблицы а из файла? Не могу понять почему ошибку выдает. Вроде бы List.Split есть такая функция судя по поиску
Код
let
   Source = Table.FromColumns({Lines.FromBinary(File.Contents("D:\****\smm\importAll\socialkitSpam.txt"), null, null, 1251)}),
   Custom1 = Table.FromRows(List.Split(Source[Column1],2), {"Файл", "Значение"})
in
   Custom1
 
Vsevolod, обновите Excel.
Вот горшок пустой, он предмет простой...
 
Доброе время суток.
Цитата
PooHkrd написал:
обновите Excel.
Если Excel 2010, 2013, то это надстройка, а Microsoft последний раз её обновлял в июле прошлого года. Может и не быть такой функции. В прошлогоднем апреле не было. Увы, сейчас нет под рукой 2010 с последней версией Power Query. Только вечером смогу посмотреть.
 
Использую версию Miscrosoft Office 2016 64bit
16.0.4639.1000

Это старая версия?  
 
Новая, все должно быть в порядке.

Но я тоже сталкивался с тем что не все функции есть и не все в таком виде как написано в мануале.  
Изменено: Alexey_Spb - 19.03.2019 07:50:36
 
Цитата
Vsevolod написал:
Это старая версия?  
Нужно знать версию Power Query Параметры запроса/Диагностика, а она может меняться с обновлениями. Исходная для 2016 2.24 не видит новых функций и их изменений.
P. S. В последней версии надстройки для 2010, 2013 функция List.Split есть.
Изменено: Андрей VG - 19.03.2019 08:12:04
Страницы: 1
Наверх