Функция объединить в excel с условием

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Еще…Меньше

Функция ОБЪЕДИНИТЬ объединяет текст из нескольких диапазонов и (или) строк, вставляя между текстовыми значениями указанный разделитель. Если в качестве разделителя используется пустая текстовая строка, функция эффективно объединит диапазоны.

Синтаксис

ОБЪЕДИНИТЬ(разделитель; игнорировать_пустые; текст1; [текст2]; …)

Аргумент

Описание

Разделитель

(обязательно)

Текстовая строка (пустая или с символами в двойных кавычках) или ссылка на действительную текстовую строку. Введенные числа будут считаться текстом.

ignore_empty
(обязательно)

В случае значения ИСТИНА игнорирует пустые ячейки.

текст1

(обязательно)

Элемент текста, который нужно присоединить. Текстовая строка или массив строк, например диапазон ячеек.

[текст2, …]

(необязательно)

Дополнительные текстовые элементы для объединения. Для текстовых элементов можно указать до 252 аргументов, включая текст1. Каждый из них может быть текстовой строкой или массивом строк, например диапазоном ячеек.

Например, выражение =ОБЪЕДИНИТЬ(» «;ИСТИНА; «Не»; «слышны»; «в»; «саду»; «даже»; «шорохи.») вернет строку Не слышны в саду даже шорохи.

Примечания

  • Если объединенная строка содержит более 32767 символов (ограничение для ячейки), функция ОБЪЕДИНИТЬ вернет ошибку #ЗНАЧ!.

Примеры

Скопируйте данные примеров из приведенных ниже таблиц и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Пример 1

Валюта

доллар США

австралийский доллар

китайский юань

гонконгский доллар

израильский шекель

южнокорейская вона

российский рубль

Формула:

=ОБЪЕДИНИТЬ(«, «; ИСТИНА; A2:A8)

Результат:

доллар США, австралийский доллар, китайский юань, гонконгский доллар, израильский шекель, южнокорейская вона, российский рубль

Пример 2

A

B’s

a1

b1

a2

b2

a4

b4

a5

b5

a6

b6

a7

b7

Формула:

=ОБЪЕДИНИТЬ(«, «; ИСТИНА; A2:B8)

Результат:

a1, b1, a2, b2, a4, b4, a5, b5, a6, b6, a7, b7

Если в качестве значения аргумента «игнорировать_пустые» используется ЛОЖЬ, результат будет следующим: a1, b1, a2, b2, , , a4, b4, a5, b5, a6, b6, a7, b7

Пример 3

Город

Субъект

Индекс

Страна

Тула

Тульская обл.

74133

Россия

Красноярск

Красноярский край

98109

Россия

Москва

Московская обл.

08830

Россия

Хабаровск

Хабаровский край

33309

Россия

Воронеж

Воронежская обл.

85285

Россия

конец

,

,

,

;

Формула:

=ОБЪЕДИНИТЬ(A8:D8; ИСТИНА; A2:D7)

Результат:

Тула,Тульская обл.,591843,Россия;Красноярск,Красноярский край,654321,Россия;Москва,Московская обл.,125130,Россия;Хабаровск,Хабаровский край,333091,Россия;Воронеж,Воронежская обл.,394000,Россия;конец

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функция СЦЕПИТЬ

Функция СЦЕП

Общие сведения о формулах в Excel

Рекомендации, позволяющие избежать появления неработающих формул

Поиск ошибок в формулах

Сочетания клавиш и горячие клавиши в Excel

Текстовые функции (справочник)

Функции Excel (по алфавиту)

Функции Excel (по категориям)

Нужна дополнительная помощь?

Склеивание текста по условию

Про то, как можно быстро склеивать текст из нескольких ячеек в одну и, наоборот, разбирать длинную текстовую строку на составляющие я уже писал. Теперь же давайте рассмотрим близкую, но чуть более сложную задачу — как склеивать текст из нескольких ячеек при выполнении определенного заданного условия. 

Допустим, что у нас имеется база данных по клиентам, где одному названию компании может соответствовать несколько разных email’ов ее сотрудников. Наша задача состоит в том, чтобы собрать все адреса по названиям компаний и сцепить их (через запятую или точку с запятой), чтобы сделать потом, например, почтовую рассылку по клиентам, т.е. получить на выходе что-то похожее на:

склеивание (сцепка) текста по условию

Другими словами, нам нужен инструмент, который будет склеивать (сцеплять) текст по условию — аналог функции СУММЕСЛИ (SUMIF), но для текста.

Способ 0. Формулой

Не очень изящный, зато самый простой способ. Можно написать несложную формулу, которая будет проверять отличается ли компания в очередной строке от предыдущей.  Если не отличается, то приклеиваем через запятую очередной адрес. Если отличается, то «сбрасываем» накопленное, начиная заново:

Сцепка текста по условию формулой

Минусы такого подхода очевидны: из всех ячеек полученного дополнительного столбца нам нужны только последние по каждой компании (желтые). Если список большой, то чтобы их быстро отобрать придется добавить еще один столбец, использующий функцию ДЛСТР (LEN), проверяющий длину накопленных строк:

Отбор строк

Теперь можно отфильтровать единички и скопировать нужные склейки адресов для дальнейшего использования.

Способ 1. Макрофункция склейки по одному условию

Если исходный список не отсортирован по компаниям, то приведенная выше простая формула не работает, но можно легко выкрутиться с помощью небольшой пользовательской функции на VBA. Откройте редактор Visual Basic нажатием на сочетание клавиш Alt+F11 или с помощью кнопки Visual Basic на вкладке Разработчик (Developer). В открывшемся окне вставьте новый пустой модуль через меню Insert — Module и скопируйте туда текст нашей функции:

Function MergeIf(TextRange As Range, SearchRange As Range, Condition As String)
    Dim Delimeter As String, i As Long
    Delimeter = ", " 'символы-разделители (можно заменить на пробел или ; и т.д.)
    
    'если диапазоны проверки и склеивания не равны друг другу - выходим с ошибкой
    If SearchRange.Count <> TextRange.Count Then
        MergeIf = CVErr(xlErrRef)
        Exit Function
    End If
    
    'проходим по все ячейкам, проверяем условие и собираем текст в переменную OutText
    For i = 1 To SearchRange.Cells.Count
        If SearchRange.Cells(i) Like Condition Then OutText = OutText & TextRange.Cells(i) & Delimeter
    Next i
    
    'выводим результаты без последнего разделителя
    MergeIf = Left(OutText, Len(OutText) - Len(Delimeter))
End Function

Если теперь вернуться в Microsoft Excel, то в списке функций (кнопка fx в строке формул или вкладка Формулы — Вставить функцию) можно будет найти нашу функцию MergeIf в категории Определенные пользователем (User Defined). Аргументы у функции следующие:

функция сцепить если выполняется условие

Способ 2. Сцепить текст по неточному условию

Если заменить в 13-й строчке нашего макроса первый знак = на оператор приблизительного совпадения Like, то можно будет осуществлять склейку по неточному совпадению исходных данных с критерием отбора. Например, если название компании может быть записано в разных вариантах, то мы можем одной функцией проверить и собрать их все:

склейка по приблизительному условию

Поддерживаются стандартные спецсимволы подстановки:

  • звездочка (*) — обозначает любое количество любых символов (в т.ч. и их отсутствие)
  • вопросительный знак (?) — обозначает один любой символ
  • решетка (#) — обозначает одну любую цифру (0-9)

По умолчанию оператор Like регистрочувствительный, т.е. понимает, например, «Орион» и «оРиОн» как разные компании. Чтобы не учитывать регистр можно добавить в самое начало модуля в редакторе Visual Basic строчку Option Compare Text, которая переключит Like в режим, когда он невосприимчив к регистру.

Таким образом можно составлять весьма сложные маски для проверки условий, например:

  • ?1##??777RUS — выборка по всем автомобильным номерам 777 региона, начинающимся с 1
  • ООО* — все компании, название которых начинается на ООО
  • ##7## — все товары с пятизначным цифровым кодом, где третья цифра 7
  • ????? — все названия из пяти букв и т.д.

Способ 3. Макрофункция склейки текста по двум условиям

В работе может встретиться задача, когда сцеплять текст нужно больше, чем по одному условию. Например представим, что в нашей предыдущей таблице добавился еще один столбец с городом и склеивание нужно проводить не только для заданной компании, но еще и для заданного города. В этом случае нашу функцию придется немного модернизировать, добавив к ней проверку еще одного диапазона:

Function MergeIfs(TextRange As Range, SearchRange1 As Range, Condition1 As String, SearchRange2 As Range, Condition2 As String)
    Dim Delimeter As String, i As Long
    Delimeter = ", " 'символы-разделители (можно заменить на пробел или ; и т.д.)
    
    'если диапазоны проверки и склеивания не равны друг другу - выходим с ошибкой
    If SearchRange1.Count <> TextRange.Count Or SearchRange2.Count <> TextRange.Count Then
        MergeIfs = CVErr(xlErrRef)
        Exit Function
    End If
    
    'проходим по все ячейкам, проверяем все условия и собираем текст в переменную OutText
    For i = 1 To SearchRange1.Cells.Count
        If SearchRange1.Cells(i) = Condition1 And SearchRange2.Cells(i) = Condition2 Then
            OutText = OutText & TextRange.Cells(i) & Delimeter
        End If
    Next i
    
    'выводим результаты без последнего разделителя
    MergeIfs = Left(OutText, Len(OutText) - Len(Delimeter))
End Function

Применяться она будет совершенно аналогично — только аргументов теперь нужно указывать больше:

склейка по нескольким условиям

Способ 4. Группировка и склейка в Power Query

Решить проблему можно и без программирования на VBA, если использовать бесплатную надстройку Power Query. Для Excel 2010-2013 ее можно скачать здесь, а в Excel 2016 она уже встроена по умолчанию. Последовательность действий будет следующей:

Power Query не умеет работать с обычными таблицами, поэтому первым шагом превратим нашу таблицу в «умную». Для этого ее нужно выделить и нажать сочетание Ctrl+T или выбрать на вкладке Главная — Форматировать как таблицу (Home — Format as Table). На появившейся затем вкладке Конструктор (Design) можно задать имя таблицы (я оставил стандартное Таблица1):

Умная таблица

Теперь загрузим нашу таблицу в надстройку Power Query. Для этого на вкладке Данные (если у вас Excel 2016) или на вкладке Power Query (если у вас Excel 2010-2013) жмем Из таблицы (Data — From Table):

Загрузка в Power Query

В открывшемся окне редактора запросов выделяем щелчком по заголовку столбец Компания и сверху жмем кнопку Группировать (Group By). Вводим имя нового столбца и тип операции в группировке — Все строки (All Rows):

Группировка в Power Query

Жмем ОК и получаем для каждой компании мини-таблицу сгруппированных значений. Содержимое таблиц хорошо видно, если щелкать левой кнопкой мыши в белый фон ячеек (не в текст!) в получившемся столбце:

Содержимое таблиц группировки

Теперь добавим еще один столбец, где с помощью функции склеим через запятую содержимое столбцов Адрес в каждой из мини-таблиц. Для этого на вкладке Добавить столбец жмем Пользовательский столбец (Add column — Custom column) и в появившемся окне вводим имя нового столбца и формулу сцепки на встроенном в Power Query языке М:

Пользовательский столбец с функцией склейки

Обратите внимание, что все М-функции регистрочувствительные (в отличие от Excel). После нажатия на ОК получаем новый столбец со склееными адресами:

Результат

Осталось удалить ненужный уже столбец ТаблАдресов (правой кнопкой мыши по заголовку — Удалить столбец) и выгрузить результаты на лист, нажав на вкладке Главная — Закрыть и загрузить (Home — Close and load):

Выгрузка результатов на лист

Важный нюанс: в отличие от предыдущих способов (функций), таблицы из Power Query не обновляются автоматически. Если в будущем произойдут какие-либо изменения в исходных данных, то нужно будет щелкнуть правой кнопкой в любое место таблицы результатов и выбрать команду Обновить (Refresh).

Ссылки по теме

  • Как разделить длинную текстовую строку на части
  • Несколько способов склеить текст из разных ячеек в одной
  • Использование оператора Like для проверки текста по маске

In this article, we are going to show you how to consolidate text by a condition in Excel.

Download Workbook

Please note that we will be using the new dynamic array functions UNIQUE and FILTER in this post. These functions currently are only available to Office 365 users.

If you don’t have Office 365, a great alternative to these formulas is using a Pivot Table instead. To learn more about this method, please see How to consolidate text with Pivot Table in Excel.

Consolidating text by a condition

The example we are going to be looking at consists of categories (Name), and corresponding text values (Ability) we want to consolidate.

Note that you can convert your data into an Excel Table by pressing Ctrl + T when the data is selected. An Excel Table provides a dynamically updating table layout and makes formulas easier to apply. See Tips for Excel Tables for more.

First, we need a list of conditions (categories). This list needs to include unique names to avoid any duplicate entries. If you already have a list of conditions, you can use it as is.

You can generate a unique list using the UNIQUE function. Use the Name column to populate a list of unique categories.

How to consolidate text by a condition in Excel - UNIQUE

Next, we can use these unique values to “filter”, and merge the values under the Ability column. The consolidation formula will include FILTER and TEXTJOIN functions.

=TEXTJOIN(«, «,TRUE,FILTER(Table1[Ability],Table1[Name]=<Category>))

In summary, the FILTER formula can return an array of values based on a criteria, and the TEXTJOIN can merge text values in an array, adding a delimiter.

The criteria in our scenario can be defined with the Table1[Name]=<Category> expression. So, replace <Category> with the reference of the unique Name value.

The first argument of the TEXTJOIN function determines the delimiter. Our choice is a comma and a space «, «. You can replace this with any value you want like “ — «, “ | “, etc.

How to consolidate text by a condition in Excel - TEXTJOIN

#Руководства

  • 29 апр 2022

  • 0

Инструкции со скриншотами и нюансами. Учим использовать кнопку «Объединить» и функции СЦЕПИТЬ, СЦЕП, ОБЪЕДИНИТЬ. Рассказываем, какой метод выбрать.

Иллюстрация: Meery Mary для Skillbox Media

Ксеня Шестак

Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.

Объединение ячеек в Excel позволяет из нескольких ячеек таблицы сделать одну. Такая опция обычно требуется в двух случаях:

  • если нужно отформатировать таблицу — например, расположить название таблицы по центру, убрать лишние пустые ячейки или оформить шапку;
  • если нужно объединить информацию — из нескольких строк или столбцов сделать одну ячейку, при этом сохранив все данные.

Рассмотрим четыре способа объединения ячеек в Excel. Разберёмся, для каких случаев они подойдут и как их применять. В конце расскажем, какие из этих способов работают в «Google Таблицах».

  • Кнопка «Объединить» — когда нужно сделать шапку в таблице.
  • Функция СЦЕПИТЬ — когда нужно собрать данные из нескольких ячеек в одну.
  • Функция СЦЕП — когда нужно собрать данные из большого диапазона.
  • Функция ОБЪЕДИНИТЬ — когда нужно собрать данные из большого диапазона и автоматически разделить их пробелами.

Для чего подойдёт. Для форматирования таблицы, когда нужно улучшить её внешний вид. Например, сделать общую шапку для нескольких столбцов. Лучше, чтобы объединяемые ячейки были пустыми или информация была только в одной из них.

Особенности метода. После объединения сохраняется только значение первой ячейки, информация из других удаляется.

Как сделать. Допустим, нужно отформатировать таблицу с каталогом авто: оформить шапку для колонок с характеристиками и убрать лишнюю пустую ячейку.

Первоначальный вид таблицы каталога автомобилей
Скриншот: Skillbox

Для начала сделаем шапку. Выделяем ячейки над колонками с характеристиками авто: год выпуска, объём двигателя, коробка передач, привод, руль.

Выделяем ячейки, которые нужно объединить
Скриншот: Skillbox

На вкладке «Главная» нажимаем на кнопку «Объединить ячейки» или «Объединить и поместить в центре» — в зависимости от того, какой визуальный результат хотим получить.

Нажимаем кнопку «Объединить и поместить в центре»
Скриншот: Skillbox

В итоге вместо пяти ячеек получаем одну. Вводим её название и меняем оформление, если нужно.

В нашем случае получилась шапка части таблицы — «Характеристики автомобилей».

Так выглядит ячейка после объединения и смены оформления
Скриншот: Skillbox

По аналогии с предыдущими шагами уберём лишнюю пустую ячейку над ячейкой «Марка, модель». Для этого нужно выделить их одновременно и также нажать на кнопку «Объединить и поместить в центре».

Выделяем ячейки, которые хотим объединить, и нажимаем кнопку
Скриншот: Skillbox

Получаем таблицу в таком виде:

Так выглядит таблица после форматирования с помощью кнопки “Объединить ячейки”
Скриншот: Skillbox

Чтобы убрать объединение ячеек, выделим их и нажмём на кнопку «Отмена объединения ячеек». Можно выбирать всю таблицу целиком — тогда Excel сам найдёт объединённые ячейки и разъединит их. Можно выделить отдельный диапазон — в этом случае разъединится только он. Мы выделим и разъединим всю шапку таблицы.

Убираем объединение всех ячеек
Скриншот: Skillbox

Получим таблицу в таком виде. Можно внести необходимые изменения, если нужно, и объединить ячейки снова.

Так выглядит таблица после отмены объединения
Скриншот: Skillbox

Дополнительно в этом методе есть кнопка «Объединить по строкам». С помощью неё можно объединить ячейки выбранного диапазона построчно. Например, есть диапазон из трёх столбцов и семи строк — нужно из всех этих столбцов сделать один, но при этом оставить количество строк неизменным. Выделим всю таблицу целиком и нажмём эту кнопку.

Нажимаем кнопку «Объединить по строкам»
Скриншот: Skillbox

Получим таблицу в таком виде — три столбца объединились в один, при этом количество строк осталось прежним.

Итог объединения по строкам
Скриншот: Skillbox

Следующие три способа используются для объединения ячеек с сохранением всех данных в них. Они работают по такому принципу: функции собирают значения из выбранных ячеек в отдельную пустую ячейку.

Например, нам нужно собрать все характеристики автомобилей в одну строку, чтобы в дальнейшем использовать их для квитанции. Разберёмся, как сделать это с помощью трёх функций.

Для чего подойдёт. Для объединения небольшого количества ячеек с сохранением всех данных.

Особенности метода. Каждую ячейку нужно указывать в виде отдельного аргумента функции; большой диапазон сразу выделить нельзя.

Функция склеивает все данные из исходных ячеек в итоговую ячейку. Часто эти данные нужно разделить: вставить пробелы, знаки препинания, символы или слова. Это придётся прописывать вручную в строке ссылок.

Как сделать. Для начала выделим ячейку, в которую функция соберёт значения из объединяемых ячеек. В нашем случае создадим дополнительную колонку «Данные для квитанции» и выделим первую ячейку.

Выделяем ячейку, куда функция принесёт объединённые данные
Скриншот: Skillbox

Дальше открываем окно для построения функции. Есть два способа сделать это. Первый — перейти во вкладку «Формулы» и нажать на «Вставить функцию».

Нажимаем сюда, чтобы открыть окно построения
Скриншот: Skillbox

Второй способ — нажать на «fx» в строке ссылок на любой вкладке таблицы.

Чтобы открыть окно построения, понадобится один клик
Скриншот: Skillbox

Справа появляется окно «Построитель формул». В нём через поисковик находим функцию СЦЕПИТЬ и нажимаем «Вставить функцию».

Нажимаем сюда, чтобы открылась функция СЦЕПИТЬ
Скриншот: Skillbox

Появляется окно для ввода аргументов функции. «Текст 1», «Текст 2» — ячейки, значения которых мы объединяем. В нашем случае таких ячеек пять, поэтому с помощью кнопки + добавляем ещё три таких аргумента.

Так выглядит окно для ввода аргументов функции СЦЕПИТЬ
Скриншот: Skillbox

Заполняем аргументы функции. Поочерёдно нажимаем на окно каждого аргумента и из таблицы выбираем значение для него.

Порядок действий, чтобы указать значение, выглядит так:

  • Ставим курсор в окно «Текст1» в построителе формул.
  • Выбираем первое значение столбца «Год выпуска» в таблице. Это ячейка B4.

Выбранное значение переносится в построитель формул и одновременно появляется в формуле строки ссылок: fx=СЦЕПИТЬ(B4).

То же самое делаем для остальных аргументов: «Текст2» → значение ячейки «Объем», «Текст3» → значение ячейки «Коробка передач», «Текст4» → значение ячейки «Привод», «Текст5» → значение ячейки “Руль”.

В итоговом виде функция получается такой: fx=СЦЕПИТЬ(B4; C4; D4; E4; F4). Нажимаем кнопку «Готово».

Указать номер ячейки можно и вручную, но проще нажать на неё
Скриншот: Skillbox

Результат работы функции СЦЕПИТЬ
Скриншот: Skillbox

Функция объединила данные всех ячеек, но не добавила пробелы и знаки препинания между ними. В этом методе их можно добавить только вручную, с помощью изменений в строке ссылок.

Добавляем в получившуюся функцию после значения каждого аргумента запятую и пробел, в таком виде, вместе с кавычками: «, «;

Устанавливаем курсор здесь, добавляем разделитель между данными ячеек
Скриншот: Skillbox

Получаем функцию в таком виде: fx=СЦЕПИТЬ(«год выпуска «;B4;», объем «;C4;», коробка передач «;D4;», привод «;E4;», руль «;F4). Нажимаем Enter.

Так значение объединённых ячеек выглядит визуально приятнее — появились запятые и пробелы
Скриншот: Skillbox

Таким же образом можно добавить не только пробелы и знаки препинания, но и целые слова и фразы.

Для нашего примера можно преобразовать функцию к такому виду: fx=СЦЕПИТЬ(«год выпуска «;B4;», объем «;C4;», коробка передач «;D4;», привод «;E4;», руль «;F4). Главное — не забывать указывать все необходимые пробелы, которые должны быть между объединёнными данными.

Теперь итоговое значение объединённых ячеек содержит в себе ещё и заголовки
Скриншот: Skillbox

Дальше нужно протянуть это значение вниз до конца таблицы, чтобы функция объединила характеристики всех остальных автомобилей.

Так выглядит результат. В этом виде значения ячеек можно забирать в квитанции
Скриншот: Skillbox

Для чего подойдёт. Для объединения больших диапазонов ячеек с сохранением всех данных.

Особенности метода. Можно указать сразу весь диапазон ячеек. Но функция, как и СЦЕПЛЕНИЕ, склеит их: значения не будут ничем разделены.

Есть два способа разделить значения в итоговой ячейке. Первый — указывать разделители (слова, символы. пробелы, запятые и так далее) в окне построения формул после каждой ячейки. Второй — прописывать их вручную в строке ссылок.

Как сделать. По аналогии с функцией СЦЕПЛЕНИЕ выделим ячейку, в которую функция будет собирать значения. Откроем окно для построения функций и найдём функцию СЦЕП.

Так выглядит окно для ввода аргументов функции СЦЕП
Скриншот: Skillbox

Появляется окно построителя формул. В нём аргумент «Текст 1» — диапазон ячеек, который нужно объединить. В нашем случае выделяем все ячейки с характеристиками автомобилей и жмём «Готово».

Выбранное значение диапазона переносится в построитель формул и одновременно появляется в формуле строки ссылок: fx=СЦЕП(B4:F4).

Указываем диапазон ячеек, которые хотим объединить, и нажимаем сюда
Скриншот: Skillbox

Результат работы функции СЦЕП
Скриншот: Skillbox

Как и в предыдущем случае, функция объединила данные всех ячеек, но снова слепила их между собой. Добавить пробелы и знаки препинания в этом методе можно через построитель формул. К сожалению, тогда придётся отказаться от выделения всего диапазона и вводить значения каждого аргумента отдельно, разбавляя их пробелами, запятыми или дополнительными словами.

Вернёмся в окно построения функции и поменяем аргументы на такой вид: «Текст1» → значение ячейки «Год выпуска», «Текст2» → «, «, «Текст3» → значение ячейки «Объём», «Текст4» → «, «. И так далее до последней ячейки, которую нужно объединить: чередуем значения ячеек и аргумент-разделитель.

Затем нажимаем «Готово». Итоговое значение функции принимает вид: fx=СЦЕП(B4;», «;C4;», «;D4;», «;E4;», «;F4), и данные ячейки разделяются запятыми и пробелами.

В полях аргументов функции чередуем значения ячеек и разделитель между ними
Скриншот: Skillbox

Теперь данные в объединённой ячейке разделены между собой
Скриншот: Skillbox

Чтобы добавить не только запятые с пробелами, но и слова, нужно дописать их в промежуточных аргументах функции. Сделаем это на нашем примере. Вернёмся в построитель формул и заменим данные: 
«Текст2» → «, объём «, «Текст4» → «, коробка передач «, «Текст6» → «, привод «, «Текст8» → «, руль «.

Заменяем данные промежуточных аргументов
Скриншот: Skillbox

В итоге функция выдаёт значение, где все данные разделены между собой дополнительными словами. Формула при этом принимает вид: fx=СЦЕП (B4;”, объём “; C4;”, коробка передач “; D4;”, привод “; E4;”, руль “; F4).

Функция объединила данные ячеек и внесла между ними дополнительные слова
Скриншот: Skillbox

Как и в предыдущем методе, можно было вносить изменения в формулу сразу в строке ссылок. Но через окно построения функций это делать удобнее — меньше вероятность ошибиться.

Протягиваем полученное значение вниз до конца таблицы — функция объединяет характеристики всех остальных автомобилей по такому же принципу.

Так выглядит результат для всей таблицы
Скриншот: Skillbox

Для чего подойдёт. Для объединения больших диапазонов ячеек с сохранением данных.

Особенности метода. Можно указать сразу весь диапазон ячеек и разделитель для них. При этом значение самого разделителя будет одним для всех объединённых ячеек. Если нужно изменить разделитель для части ячеек — делать это придётся вручную в строке ссылок.

Как сделать. Выделим ячейку, в которую функция будет собирать значения. Откроем окно для построения функций и найдём функцию ОБЪЕДИНИТЬ.

Так выглядит окно для ввода аргументов функции ОБЪЕДИНИТЬ
Скриншот: Skillbox

Появляется окно построителя формул. Здесь аргументы не такие очевидные, как в предыдущих двух методах, поэтому разберём каждый подробнее.

«Разделитель» — значение, которое появится между ячейками после объединения. Разделитель будет одинаковым для всех ячеек.

В нашем случае в качестве разделителя добавим запятую и пробел: «, «.

Разделитель добавить между всеми значениями ячеек запятую и пробел
Скриншот: Skillbox

«Пропускать_пустые» — условное значение, которое определит, что функция будет делать с пустыми ячейками в диапазоне:

  • Если нужно, чтобы пустые ячейки игнорировались и разделители не дублировались в них, вводим 1 (ИСТИНА).
  • Если нужно, чтобы пустые ячейки обязательно учитывались, вводим 0 (ЛОЖЬ).

В нашем примере в таблице нет пустых ячеек, поэтому не принципиально, какое значение устанавливать в этом аргументе. Введём 1.

С этим значением аргумента при построении функции пустые ячейки будут игнорироваться
Скриншот: Skillbox

«Текст1» — значения ячеек, которые нужно объединить. Можно выбирать одним диапазоном или вводить каждое значение по отдельности.

В нашем примере выберем все ячейки одним диапазоном.

Можно выбирать каждую ячейку по отдельности или сразу весь диапазон
Скриншот: Skillbox

Итоговая функция в строке ссылок принимает вид: fx=ОБЪЕДИНИТЬ(«, «;1;B4:F4).

Нажимаем кнопку «Готово» и растягиваем полученную ячейку на все остальные строки.

Результат работы функции ОБЪЕДИНИТЬ
Скриншот: Skillbox

В итоге функция объединила данные всех ячеек и сразу разделила их запятыми и пробелами. С одной стороны, это удобно: не пришлось вводить разделители несколько раз. С другой стороны, функция позволила ввести только одно значение разделителя. Если нужно дополнить значения дополнительным текстом, разным для всех ячеек, — придётся делать это вручную через построитель формул. Как это сделать, можно посмотреть в предыдущей инструкции для функции СЦЕП.

Какие методы объединения ячеек есть в «Google Таблицах»? В них есть кнопка «Объединить», которая работает по аналогии с Excel. Также есть функция СЦЕПИТЬ, но нет окна построителя формул — прописывать значения придётся вручную. Если вам нужен разделитель в виде запятой и пробела, то функция будет выглядеть так: fx=СЦЕПИТЬ(C4;», «;D4).

Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше

Мы знакомы с функцией СЦЕПИТЬ для объединения различных строк или чисел в Excel. Однако у него есть некоторые ограничения:

1. Аргументы разделяются запятыми.

2. Эта функция не может получить объект в области для выполнения слияния.

3. У него нет прав на добавление разделителей.

С этими недостатками новая функция, представленная в Excel 2016, называется TEXTJOINT, которая выполняет ту же функцию, что и CONCATENATE, но более эффективна.

Описание функции ОБЪЕДИНЕНИЕ

Функция TEXTJOIN объединяет текст из нескольких диапазонов и / или строк, который включает разделитель между связанным текстовым значением. Если разделителем является пустая текстовая строка, эта функция эффективно сопоставляет диапазоны.

Синтаксис функции ОБЪЕДИНЕНИЕ

Эта функция имеет следующий синтаксис:

TEXTJOIN (разделитель; ignore_empty; text1; [text2],.)

Давайте разберем вышесказанное:

  1. Разделитель (разделитель) — это символ, вставленный между объединенным текстом. Например, имя и фамилия человека объединены с разделителем «_» (подчеркивание), чтобы легко идентифицировать имя и избежать пробелов в строке. В этом примере подчеркивание является разделителем, а связанный текст — это имя и фамилия.
  2. Игнорировать пустые используется для игнорирования пустых ячеек при связывании объектов в области видимости. Мы можем установить параметры для игнорирования пустых ячеек, оставив для этого параметра значения ИСТИНА и ЛОЖЬ, если мы хотим иметь пустые ячейки.
  3. Текст 1 — это текст, который нужно объединить, может быть отдельной ячейкой или диапазоном ячеек.
  4. Текст 2 — это дополнительный текст, который необходимо объединить. Вы можете использовать до 252 текстовых аргументов, включая текст 1. Подобно тексту 1, это может быть отдельная ячейка или диапазон ячеек.

Пример функции TEXTJOIN

Вот несколько примеров, чтобы вы могли лучше понять эту функцию.

Пример 1:

В этом примере у нас есть таблица данных, которая включает имена, фамилии и состояния каждого человека. Здесь мы будем использовать функцию TEXTJOIN, чтобы создать уникальный идентификатор для каждого человека, объединив имя, фамилию и состояние. В формуле используется символ подчеркивания в качестве разделителя, для второго аргумента устанавливается значение ИСТИНА, чтобы не было пустых ячеек, а диапазон A2: C2 — это подключенный диапазон.

Изображение 1: как использовать функцию ОБЪЕДИНЕНИЕ в Excel 2016

Перетащите формулу в ячейку D2 вниз, вы получите идентификатор для каждого человека.

Пример 2:

В этом примере, все еще в таблице данных выше, мы находим список всех имен в состоянии LA, дважды используя функцию TEXTJOIN. Сначала используйте функцию TEXTJOIN вместе с функцией IF, чтобы узнать, кто соответствует вышеуказанному условию, то есть человек, который живет в штате LA. Результат вернет полное имя человека, когда мы потянем формулу, столбец будет заполнен его полным именем. Если вы живете в другом штате, это поле останется пустым.

Изображение 2: как использовать функцию ОБЪЕДИНЕНИЕ в Excel 2016

Затем мы снова воспользуемся функцией TEXTJOIN, чтобы получить список через запятую. Для этого запишем следующую формулу в ячейку B2.

= TEXTJOIN (‘,’; ИСТИНА; D5: D13)

Как показано на картинке ниже:

Изображение 3: как использовать функцию ОБЪЕДИНЕНИЕ в Excel 2016

Результатом будет список имен, разделенных запятыми, как показано ниже:

Изображение 4: Как использовать функцию ОБЪЕДИНЕНИЕ в Excel 2016

Пустые ячейки будут проигнорированы из связанной строки, потому что мы установили для второй опции значение ИСТИНА.

Пример 3:

Мы можем использовать функцию TEXTJOIN для создания предложений с автозаполнением. Например, используйте его, чтобы написать комментарий к расшифровке стенограммы, чтобы узнать, к какому классу он принадлежит.

В приведенном ниже примере мы создадим таблицу LOOKUP, чтобы найти соответствующий класс учащегося и вернуть комментарии с помощью функции TEXTJOIN. В следующей таблице содержится информация о диапазоне точек и классов, соответствующая этому диапазону точек.

Изображение 5: Как использовать функцию ОБЪЕДИНЕНИЕ в Excel 2016

Формула ПРОСМОТР выглядит следующим образом:

= ПРОСМОТР (F4; L5: L8; N5: N8)

Как мы знаем, LOOKUP имеет по крайней мере три аргумента, первое значение поиска, F4 в этом примере. Второй аргумент — это диапазон поиска, т.е. L5: L8 в этой формуле, а последний аргумент — это возвращаемый диапазон N5: N8 в формуле. Таким образом, формула ищет точки в первом столбце (столбец L) и возвращает значение из столбца N.

Формула для получения информации из следующей таблицы находится между E3: F5.

Изображение 6: Как использовать функцию ОБЪЕДИНЕНИЕ в Excel 2016

Формула поиска, описанная в предыдущем абзаце в ячейке F5, возвращает рейтинг C для 34. Теперь мы будем использовать функцию TEXTJOIN, чтобы создать комментарий, который можно разместить в отчетах.

Предположим, нам нужно такое предложение:

[Candidate tên] у вас есть символ [ký hiệu], и ваш уровень [Grade].

У нас будет следующая формула:

= TEXTJOIN («»; ИСТИНА; F3; «Вы достигли»; F4; «очки, рейтинги»; F5; «.»)

В этой формуле:

1. Первый аргумент — это разделитель, установленный в пробел («»), что делает его похожим на предложение.

2. Второй аргумент обычно имеет значение ИСТИНА.

3. F3 — имя студента.

4. Продолжение «You» останется таким же для каждого студента.

5. Далее идет F4, баллы для студентов.

6. Следующий аргумент фиксированного раздела останется неизменным для всех случаев.

7. Второй аргумент — это класс в ячейке F5.

8. Последний аргумент — это выражение пунктуации, заканчивающее предложение.

Желаю всем успехов!

Узнать больше:

  1. Это самые основные функции Excel, которые вам необходимо понять.
  2. Как использовать функцию Vlookup в Excel
  3. Как использовать функцию СУММ для расчета итогов в Excel

В начале 2016 года Microsoft Excel выпустил очередной релиз своей программы. В этой заметке рассмотрены две новые текстовые функции Excel. На момент написания этой статьи они доступны пока только в режиме Excel online, поэтому скриншоты и последующий ролик записаны именно там.

Чтобы объединить содержимое нескольких ячеек в одну, традиционно используют формулу Excel СЦЕПИТЬ либо специальный оператор амперсанд &. В то же время у этой функции есть ряд недостатков. Основной из них — это необходимость каждую склеиваемую ячейку указывать в виде отдельного аргумента. При большом количестве склеиваемых ячеек приходится изрядно помучиться. С появлением новых функций СЦЕП и ОБЪЕДИНИТЬ этому неудобству пришел конец.

На смену СЦЕПИТЬ пришла функция СЦЕП, которая может сцепить целый диапазон! Теперь вместо отдельных ячеек A1;A2;A3;A4;A5;A6;A7;A8;A9;A10 достаточно указать диапазон A1:A10. Многие давно этого ждали. Дождались!

Функция Excel СЦЕП

Однако радость кажется неполной, т.к. между словами обычно вставляют пробелы, запятые или какие-либо другие разделители, а СЦЕП этого не умеет. В примере выше нужно их либо сразу указать в конце каждого слова, либо опять же прописывать вручную. Вот бы здорово еще и разделители сами вставлялись.

Вы не поверите, но это как раз то, что умеет делать вторая текстовая функция эксель, о которой я хотел рассказать! Встречайте — ОБЪЕДИНИТЬ.

Ее синтаксис следующий.

ОБЪЕДИНИТЬ(разделитель; игнорировать_пустые; текст1; [текст2]; …)

разделитель – то, что должно вставляться между ячейками.

игнорировать_пустые – здесь ставится либо 0 (ЛОЖЬ), либо 1 (ИСТИНА). Если поставить 1, то пустые ячейки будут игнорироваться и разделители не будут дублироваться.

текст1; [текст2]; … – это либо отдельные ячейки, либо целый соединяемый диапазон.

В нашем примере функция ОБЪЕДИНИТЬ позволяет получить следующий результат.

Функция Excel TEXTJOIN

Примечание. Некоторое время функция имела названия TEXTJOIN.

Я специально удалил бананы, чтобы показать отсутствие лишнего пробела после яблок.

Теперь объединить ячейки Excel, добавив к ним разделитель, можно всего за несколько секунд. Отличная функция ОБЪЕДИНИТЬ. Выглядит настолько круто, что хочется разработчикам пожать руку.

Поделиться в социальных сетях:

Хитрости »

1 Май 2011              164095 просмотров


Как сцепить несколько значений в одну ячейку по критерию? СцепитьЕсли

Все чаще вижу на разных форумах вопросы типа: Есть таблица, в одном столбце фамилии, в другом оценки(виды работ и т.д.). Как сцепить в одной ячейке для каждой фамилии только принадлежащие ей оценки? Или собрать в одну ячейку через запятую фамилии всех сотрудников одного отдела, но все сотрудники идут вразнобой. Т.е. из такой таблицы:
Исходная таблица
Получить такую:
Результат
Стандартными функциями это сделать весьма проблематично, т.к. заранее неизвестно сколько будет этих оценок и фамилий.. MIcrosoft работает над усовершенствованием Excel и теперь стало возможным сделать это и стандартными функциями. Правда, с небольшими ограничениями: сделать это могут только пользователи Excel 2019 и выше или Office 365 по подписке. В итоге счастливые обладатели новейших версий могут использовать достаточно несложные формулы:
=ОБЪЕДИНИТЬ(«; «;1;ФИЛЬТР(B2:B20;A2:A20=A2;»»))
=TEXTJOIN(«; «,1,FILTER(B2:B20,A2:A20=A2,»»))
Аргументы функции:

  • («; «) — символ(или несколько символов), которым необходимо объединять найденные значения
  • (A2:A20) — диапазон, в котором искать критерий
  • (A2) — критерий. Значение, на основании которого необходимо сцеплять значения. Значение просматривается в диапазоне значений(A2:A20)
  • (B2:B20) — из этого диапазона берется значение для сцепления, если значение напротив в диапазонe(A2:A20) совпадает с искомым значением A2

Для любителей «старой школы» можно вместо функции ФИЛЬТР(FILTER) использовать стандартную ЕСЛИ(IF):
=ОБЪЕДИНИТЬ(«; «;1;ЕСЛИ(A2:A20=A2;B2:B20;»»))
=TEXTJOIN(«; «,1,IF(A2:A20=A2,B2:B20,»»))
так же это можно использовать в Excel 2019 в случае, если функция ФИЛЬТР отсутствует — да, может быть и такое, хоть Microsoft и пишет, что она там поддерживается
Аргументы точно такие же, как в формуле выше. Правда эта формула вводится в ячейку как формула массива(т.е. одновременным нажатием трех клавиш Ctrl+Shift+Enter).
Хотя в самых новых версия(а-ля 365) вводить тремя клавишами уже не обязательно — Excel сам поймет, что требуется обработка массива ячеек.


А для пользователей Excel 2016 и ниже я написал небольшую функцию пользователя на VBA, которая решает данную проблему. Так же подобную функцию называют «многоразовый ВПР«, потому что она по критерию возвращает ВСЕ значения для этого критерия, а не только первое.

'---------------------------------------------------------------------------------------
' Author : The_Prist(Щербаков Дмитрий)
'          Профессиональная разработка приложений для MS Office любой сложности
'          Проведение тренингов по MS Excel
'          http://www.excel-vba.ru
' Purpose:
'---------------------------------------------------------------------------------------
Function СцепитьЕсли(ByRef Диапазон As Range, ByVal Критерий As String, ByRef Диапазон_сцепления As Range, Optional Разделитель As String = " ", Optional БезПовторов As Boolean = False) As String
    Dim li As Long, sStr As String, avItem, avDateArr(), avRezArr(), lUBnd As Long
    If Диапазон.Count > 1 Then
        avDateArr = Intersect(Диапазон, Диапазон.Parent.UsedRange).Value
        avRezArr = Intersect(Диапазон_сцепления, Диапазон_сцепления.Parent.UsedRange).Value
        If Диапазон.Rows.Count = 1 Then
            avDateArr = Application.Transpose(avDateArr)
            avRezArr = Application.Transpose(avRezArr)
        End If
    Else
        ReDim avDateArr(1, 1): ReDim avRezArr(1, 1)
        avDateArr(1, 1) = Диапазон.Value
        avRezArr(1, 1) = Диапазон_сцепления.Value
    End If
    lUBnd = UBound(avDateArr, 1)
    'Определяем вхождение операторов сравнения в Критерий
    Dim objRegExp As Object, objMatches As Object
    Set objRegExp = CreateObject("VBScript.RegExp")
    objRegExp.Global = False: objRegExp.Pattern = "=|<>|=>|>=|<=|=<|>|<"
    Set objMatches = objRegExp.Execute(Критерий)
    'Если есть вхождения
    If objMatches.Count > 0 Then
        Dim sStrMatch As String
        sStrMatch = objMatches.Item(0)
        Критерий = Replace(Replace(Критерий, sStrMatch, "", 1, 1), Chr(34), "", 1, 2)
        If IsNumeric(Критерий) And Критерий <> "" Then
            Критерий = CDbl(Критерий)
        End If
        Select Case sStrMatch
        Case "="
            For li = 1 To lUBnd
                If avDateArr(li, 1) = Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case "<>"
            For li = 1 To lUBnd
                If avDateArr(li, 1) <> Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case ">=", "=>"
            For li = 1 To lUBnd
                If avDateArr(li, 1) >= Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case "<=", "=<"
            For li = 1 To lUBnd
                If avDateArr(li, 1) <= Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case ">"
            For li = 1 To lUBnd
                If avDateArr(li, 1) > Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        Case "<"
            For li = 1 To lUBnd
                If avDateArr(li, 1) < Критерий Then
                    If Trim(avRezArr(li, 1)) <> "" Then _
                       sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
                End If
            Next li
        End Select
    Else    'Если нет вхождения
        For li = 1 To lUBnd
            If avDateArr(li, 1) Like Критерий Then
                If Trim(avRezArr(li, 1)) <> "" Then _
                   sStr = sStr & IIf(sStr <> "", Разделитель, "") & avRezArr(li, 1)
            End If
        Next li
    End If
 
    If БезПовторов Then
        Dim oDict As Object, sTmpStr
        Set oDict = CreateObject("Scripting.Dictionary")
        sTmpStr = Split(sStr, Разделитель)
        On Error Resume Next
        For li = LBound(sTmpStr) To UBound(sTmpStr)
            oDict.Add sTmpStr(li), sTmpStr(li)
        Next li
        sStr = ""
        sTmpStr = oDict.keys
        For li = LBound(sTmpStr) To UBound(sTmpStr)
            sStr = sStr & IIf(sStr <> "", Разделитель, "") & sTmpStr(li)
        Next li
    End If
    СцепитьЕсли = sStr
End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию СцепитьЕсли можно будет вызвать из Диспетчера функций(Shift+F3), отыскав её в категории Определенные пользователем (User Defined Functions).
Синтаксис записи в ячейку листа:
=СцепитьЕсли(A2:A20;A2;B2:B20;»-«;0)

По принципу работы функция похожа на стандартную СУММЕСЛИ. Указывается диапазон значений(где просматривать значение), критерий и диапазон значений для сцепления. Символ для разделения слов указывать необязательно.

Диапазон(A2:A20) — диапазон, в котором искать критерий(указывается один столбец)

Критерий(A2) — критерий. Значение, на основании которого необходимо сцеплять значения. Может содержать символы подстановки — * и ? и символы сравнения (<>»», <23, >0, «<>»&A1 и т.п.). Просматривается Диапазон. При совпадении значения ячейки в Диапазоне значение из Диапазона_Сцепления добавляется к результату с выбранным разделителем.

Диапазон_сцепления(B2:B20) — из этого диапазона берется значение для сцепления, если значение в аргументе Диапазон совпадает с аргументом Критерий(указывается один столбец). Если в Диапазоне значение 5-ой строки совпадает с критерием, то из Диапазона_Сцепления будет взято так же значение из 5-ой строк этого диапазона и сцеплено с результатом.

Разделитель(«-«) — По умолчанию пробел, но можно задать любой другой символ или группу символов.

БезПовторов — если указать 1 или ИСТИНА, то в результате получится строка, в которой нет одинаковых значений. Если указать 0 или ЛОЖЬ, то будут выведены все значения. По умолчанию значение ЛОЖЬ.

Примечание: для работы функции должны быть разрешены макросы

Скачать пример

  Пример СцепитьЕсли.xls (68,0 KiB, 15 629 скачиваний)


Также см.:
ВПР_МН
Сцепить_МН
СцепитьЕсли
Что такое функция пользователя(UDF)?
ВПР с возвратом всех значений


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Предположим, у меня есть столбец идентификационных номеров, который содержит несколько дубликатов и столбец имен, и теперь я хочу объединить имена на основе уникальных идентификационных номеров, как показано на скриншоте слева, чтобы быстро объединить текст на основе критериев, как мы могли бы делать в Excel?

doc объединить текст на основе критерия 1

Объединить текст на основе критериев с функцией, определяемой пользователем

Объединить текст на основе критериев с Kutools for Excel


Чтобы объединить текст с уникальными идентификаторами, вы можете сначала извлечь уникальные значения, а затем создать функцию, определяемую пользователем, для объединения имен на основе уникального идентификатора.

1. В качестве примера возьмем следующие данные. Сначала вам нужно извлечь уникальные идентификационные номера, примените эту формулу массива: =IFERROR(INDEX($A$2:$A$15, MATCH(0,COUNTIF($D$1:D1, $A$2:$A$15), 0)),»»), Введите эту формулу в пустую ячейку, например D2, затем нажмите Shift + Ctrl + Enter ключи вместе, см. снимок экрана:

doc объединить текст на основе критерия 2

Функции: В приведенной выше формуле A2: A15 это диапазон данных списка, из которого вы хотите извлечь уникальные значения, D1 — первая ячейка столбца, в котором вы хотите вывести результат извлечения.

2. Затем перетащите дескриптор заполнения вниз, чтобы извлечь все уникальные значения, пока не отобразятся пробелы, см. Снимок экрана:

doc объединить текст на основе критерия 3

3. На этом этапе вы должны создать Функция, определяемая пользователем чтобы объединить имена на основе уникальных идентификационных номеров, удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.

4. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код VBA: объединение текста на основе критериев

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

5. Затем сохраните и закройте этот код, вернитесь на свой рабочий лист и введите эту формулу в ячейку E2, = СЦЕПИТЬЕСЛИ ($ A $ 2: $ A $ 15; D2; $ B $ 2: $ B $ 15; «,») , см. снимок экрана:

doc объединить текст на основе критерия 4

6. Затем перетащите дескриптор заполнения вниз к ячейкам, к которым вы хотите применить эту формулу, и все соответствующие имена были объединены на основе идентификационных номеров, см. Снимок экрана:

doc объединить текст на основе критерия 5

Советы:

1. В приведенной выше формуле A2: A15 исходные данные, которые вы хотите объединить на основе, D2 — уникальное значение, которое вы извлекли, и B2: B15 — это столбец имени, который вы хотите объединить.

2. Как видите, я объединил значения, разделенные запятой, вы можете использовать любые другие символы, изменив запятую «,» формулы по своему усмотрению.


Если у вас есть Kutools for Excel, С его Расширенные ряды комбинирования Утилита вы можете быстро и удобно объединить текстовую базу по критериям.

После установки Kutools for Excelвыполните следующие действия:

1. Выберите диапазон данных, который вы хотите объединить, на основе одного столбца.

2. Нажмите Кутулс > Слияние и разделение > Расширенные ряды комбинирования, см. снимок экрана:

3. В Объединить строки на основе столбца диалоговом окне щелкните столбец идентификатора, а затем щелкните Основной ключ чтобы сделать этот столбец ключевым столбцом, на котором основаны ваши объединенные данные, см. снимок экрана:

doc объединить текст на основе критерия 7

4, Затем нажмите Имя и фамилия столбец, значения которого вы хотите объединить, затем щелкните Сочетать вариант и выберите один разделитель для объединенных данных, см. снимок экрана:

doc объединить текст на основе критерия 8

5. После завершения этих настроек нажмите OK для выхода из диалогового окна, и данные в столбце B были объединены вместе на основе ключевого столбца A. См. снимок экрана:

doc объединить текст на основе критерия 9

Благодаря этой функции в кратчайшие сроки решится следующая проблема:

Как объединить несколько строк в одну и суммировать дубликаты в Excel?

Скачать и бесплатную пробную версию Kutools for Excel Сейчас !



Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Функция объединить в excel 2016 отсутствует
  • Функция объединить excel на английском
  • Функция объединения ячеек в excel это
  • Функция объединения текста ячеек в excel
  • Функция объединения текста в ячейках excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии