Страницы: 1
RSS
Склейка текста по условию
 
Добрый день!
Подскажите формулу для склейки текста по условию, скажем если в столбце "C" содержится слово "Раб" то все что ниже и правее нужно объединить в одну строку до следующего "Раб"
Изменено: Сергей Шистеров - 15.02.2020 09:07:50
 
Сергей Шистеров, доброго времени, суток. не стесняйтесь поиском пользоваться

https://www.planetaexcel.ru/techniques/7/205/
Не бойтесь совершенства. Вам его не достичь.
 
Добрый день! видел данный вариант но он не работает в моем случае т.к. там он объединит все "Раб" а мне нужно объединение по строкам с разделением т.е. находится первое условие "Раб" объединяем нижние строки с текстом до следующего "Раб"  
 
Добрый вечер.
Да простят меня все знатоки PQ за сиё безобразие  :D
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица3"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Столбец1", type text}, {"Столбец2", type text}}),
    #"Добавлен индекс" = Table.AddIndexColumn(#"Измененный тип", "Индекс", 1, 1),
    #"Условный столбец добавлен" = Table.AddColumn(#"Добавлен индекс", "Пользовательский", each if [Столбец1] = "раб" then [Индекс] else null),
    #"Заполнение вниз" = Table.FillDown(#"Условный столбец добавлен",{"Пользовательский"}),
    #"Сгруппированные строки" = Table.Group(#"Заполнение вниз", {"Пользовательский"}, {{"Количество", each _, type table [Пользовательский=number, Столбец2=text]}}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Сгруппированные строки", "Пользовательский.1", each Text.Combine([Количество][Столбец2],", ")),
    #"Вставленный литерал" = Table.AddColumn(#"Добавлен пользовательский объект", "Литерал", each "раб", type text),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Вставленный литерал",{"Пользовательский", "Количество"}),
    #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Удаленные столбцы",{"Литерал", "Пользовательский.1"})
in
    #"Переупорядоченные столбцы"
 
Почти такой же вариант на PQ с полумышкоклацаньем:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    index_col = Table.AddIndexColumn(Источник, "Индекс", 1, 1),
    add_funcs = Table.FillDown(Table.AddColumn(index_col, "раб", each if [Столбец1]="раб" then [Индекс] else null),{"раб"}),
    groupe_list = Table.Group(add_funcs, {"раб"}, {{"res", each _[Столбец2], type list}}),
    #"Добавлен пользовательский объект" = Table.AddColumn(groupe_list, "Результат", each Text.Combine([res],",")),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Добавлен пользовательский объект",{"res"})
in
    #"Удаленные столбцы"
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Большое спасибо, начну изучать PQ, все работает!
 
Если нет PQ (как например у меня), то в любом случае можно написать свою UDF. Если очень нужно.
Страницы: 1
Наверх