Страницы: 1
RSS
Как в Excel объединить текстовые значения нескольких строк в одну по определенному критерию
 
Есть таблица с большим объемом данных, нужно объединить текстовые значения двух столбцов по определенному критерию в одну ячейку (наименование-1: значение-1; наименование-2: значение-2; ...).
Смысл, автоматизировать составление ТЗ для копирайтера по написанию статей.
Есть название темы статьи - это и есть критерий, например "Как переобуть машину?"
Есть ключевые слова (фразы) для этой статьи, каждая имеет: отдельную ячейку, отдельную строчку.
Есть слова подсветки (еще слова и фразы), тоже имеет свою ячейка и строку каждая фраза.
Есть ссылка привязанная к фразе, или пустая ячейка, если к фразе нет ссылки.
Должна быть одна ячейка, в которой эти данные будут объединены, через точку с запятой, по названию статьи.
Изменено: Виталий Донец - 16.12.2022 10:38:32
 
Проверить не могу, у меня Эксель старый, но по логике, вам сначала столбцы сцепить между собой с двоеточием, а потом уже задавать разделитель. А так, ваша формула делает именно то, что задаете - разделяет каждую ячейку заданным разделителем..В таком виде должно работать, по идее, только обязательно вводить как формулу массива cntrl+shift+enter.
Код
=_xlfn.TEXTJOIN("; ";1;ЕСЛИ(B:B=A2;C:C&": "&D:D;""))

И я б посоветовал в какой нибудь ячейке количество строк вычислять, а не целиком со столбцами работать. И ограничивать все диапазоны по типу
Код
$B$1:индекс(B:B;ячейка с числом строк)
Изменено: Sergey Stoyanov - 16.12.2022 12:22:29
 
Цитата
написал:
$B$1:индекс(B:B;ячейка с числом строк)
С помощью "ИНДЕКС" можно найти только одну ячейку, а мне нужно в одну ячейку запихнуть данные с нескольких.
 
вариант на pq:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    a = Table.Group(Source, "Критерии", {"q", (x)=> Table.FromColumns({x[Критерии]} & {x[Наименование]} & {x[Значение]} & {{Text.Combine(List.Combine(List.Zip({x[Наименование], x[Значение]})), ", ")}}, Table.ColumnNames(Source) & {"all"})}),
    q = Table.Combine(a[q])
in
    q
 
Можно по простому
=C2&": "&D2&IF(B3=B2;"; "&E3;"")
А видимость подкрутить условным форматом
или сделать отдельный столбец в котором показать только в нужной строке по тому же условию.

Цитата
Виталий Донец написал:
С помощью "ИНДЕКС" можно найти только одну ячейку, а
это вам писали про диапазон, который нужно использовать.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Можно по простому=C2&": "&D2&IF(B3=B2;"; "&E3;"")А видимость подкрутить условным форматом или сделать отдельный столбец в котором показать только в нужной строке по тому же условию.
Спасибо формула рабочая, узнал для себя новые возможности.
Но мой вариант изначально был провальный. Если вставить полученный результат в другую ячейку, то форматирование уже не скрывает ненужные данные.
Логику вычислений переделал на "Лист2", кому интересно.
Смысл заключается в том, чтобы производить подсчет ключей в статьях, поэтому он должен быть один в ячейке, ссылки тоже. А ячейка сцепки - это ТЗ для написания статьи копирайтеру, легче это тз сделать из нескольких ячеек и немного подправить.
Но в новом варианте тоже есть проблема с функцией СЦЕПИТЬ или & которые находятся в операторе ЕСЛИМН.
ЕСЛИМН(Условие1;"Текст до 100 симв работает нормально"&" еще текст с символом переноса строки";Условие2;"Текст более 100 симв выдает ошибку"&" еще текст с символом переноса строки")
В примере Лист2 G10
Изменено: Виталий Донец - 18.12.2022 13:43:46 (Указал оператор функции и выделил текст.)
 
Цитата
написал:
вариант на pq:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6      let          Source = Excel.CurrentWorkbook(){[Name=  "Таблица1"  ]}[Content],          a = Table.Group(Source,   "Критерии"  , {  "q"  , (x)=> Table.FromColumns({x[Критерии]} & {x[Наименование]} & {x[Значение]} & {{Text.Combine(List.Combine(List.Zip({x[Наименование], x[Значение]})),   ", "  )}}, Table.ColumnNames(Source) & {  "all"  })}),          q = Table.Combine(a[q])    in          q   
 
Не понял куда этот код вставляется? В VBA не подходит.
 
Виталий Донец, уже 2023 год на дворе, почитайте в интернете что такое Power Query и вы удивитесь, что разговор про Excel
Страницы: 1
Наверх