Страницы: 1
RSS
Удаление части столбца по значению PQ
 
Добрый день! Осваиваю и одновременно внедряю в работу PQ. Застрял на следующем моменте. Из 1С7 выгружаю документ, который разбит на несколько частей по столбцу, интересующие: "1. Сырье и основные материалы","3. Вспомогательные материалы". Хотелось бы оставить все значения/строки (количество строк может меняться от 2х до 10ти) в категории "1. Сырье и основные материалы", а все что ниже, начиная с "3. Вспомогательные материалы" удалить.
 
Спасибо. Справился с помощью создания "Условного столбца"
 
Если это всегда раздел 1, то типа такого:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Пользовательская", each if Text.StartsWith([Статьи затрат], "1.") then "1" else if Text.StartsWith([Статьи затрат], "-") then null else 2),
    #"Заполнение вниз" = Table.FillDown(#"Добавлен пользовательский объект",{"Пользовательская"}),
    #"Удаленные ошибки" = Table.RemoveRowsWithErrors(#"Заполнение вниз", {"Пользовательская"}),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Удаленные ошибки", each ([Пользовательская] = "1")),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Строки с примененным фильтром",{"Пользовательская"})
in
    #"Удаленные столбцы"
 
Ungrateful,Спасибо! Работает.
 
Еще вариант
Код
= Table.FirstN(Source,each  not List.Contains({"3."},Text.Start([Статьи затрат],2)))
 
Михаил Л, спасибо!
 
если правильно понял
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    fn =(lst)=>List.PositionOf(lst,{"1".."9"}, Occurrence.First,(x,y)=>List.Contains(y,Text.Start(x,1)))+1,
    num = fn(from[Статьи затрат]),
    num1 = fn(List.Skip(from[Статьи затрат],num)),
    to = Table.Range(from,num-1,num1)
in
    to
Изменено: buchlotnik - 22.06.2020 17:25:41
Соблюдение правил форума не освобождает от модераторского произвола
Страницы: 1
Наверх