Страницы: 1
RSS
Power Query исправление смещенных строк в банковской выписке
 
Друзья, здравствуйте!
Во вложении текстовый файл. Разделитель "вертикальная черта". Иногда попадаются такие строки, что они как бы разорваны, т.е. почему-то в строке присутствует перенос строки или что-то (строки в файле примере с NN п/п 160 и 945).
По сути, что нужно сделать руками это:
1) посмотреть что строка начинается не с "вертикальной черты"
2) встать в начало этой строки
3) нажать backspace
4) поставить пробел
Как подобную логику объяснить Power Query? Нужно именно на нем, не VBA.

Спасибо.
 
Для этой выписки работает.
Столбцы я начала вручную переименовывать на последнем шаге, но не очень догнала что там как зовут. И нахально предположила, что лишних строк сверху всегда 11 8-0

Код
let
    Source = Csv.Document(File.Contents("C:\Users\юзер\Downloads\Выписка.txt"),[Delimiter=",", Columns=2, Encoding=1251, QuoteStyle=QuoteStyle.None]),
    col1 = Source[Column1],
    RemovedTopRows = List.Skip(col1,11),

    KeptFirstRows = List.FirstN(RemovedTopRows, (x)=> not Text.StartsWith(x, "+-")),
    res = {},

    acc = List.Accumulate(  KeptFirstRows, 
                             res,  
                             (state, current) => 
                                                if   Text.StartsWith (current, "|") 
                                                then state & {current} 
                                                else List.FirstN(state, List.Count(state) -1) & {List.Last( state) & current} ),
    #"Converted to Table1" = Table.FromList(acc, Splitter.SplitTextByDelimiter("|", QuoteStyle.None), null, null, ExtraValues.Error),
    #"Removed Columns" = Table.RemoveColumns(#"Converted to Table1",{"Column1"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Column2", "№"}, {"Column3", "№№"}, {"Column4", "Номер договора"}, {"Column5", "Дата договора"}, {"Column6", "Наименование филиала"}})
in
    #"Renamed Columns"
Изменено: Xel - 03.08.2022 15:42:22
 
Xel, огромное спасибо!
Их и есть всегда 11  :)
Страницы: 1
Наверх