Как соединить списки в excel

Слияние двух списков без дубликатов

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

Слияние списков без дубликатов

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

Способ 1. Удаление дубликатов

Можно решить задачу самым простым путем — руками скопировать элементы обоих списков в один и применить потом к полученному набору инструмент Удалить дубликаты с вкладки Данные (Data — Remove Duplicates):

Удаление дубликатов в общем списке

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

Способ 1а. Сводная таблица

Этот способ является, по сути, логическим продолжением предыдущего. Если списки не очень большого размера и заранее известно предельное количество элементов в них (например, не больше 10), то можно объединить две таблицы в одну прямыми ссылками, добавить справа столбец с единичками и построить по получившейся таблице сводную:

Объединение сводной таблицей

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

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

Способ 2. Формула массива

Можно решить проблему формулами. В этом случае пересчет и обновление результатов будет происходить автоматически и мгновенно, сразу после изменений в исходных списках. Для удобства и краткости давайте дадим нашим спискам имена Список1 и Список2, используя Диспетчер имен на вкладке Формулы (Formulas — Name Manager — Create):

Присвоение имен спискам

После именования, нужная нам формула будет выглядеть следующим образом:

Формула массива для слияния двух списков без дубликатов

На первый взгляд выглядит жутковато, но, на самом деле, все не так страшно. Давайте я разложу эту формулу на несколько строк, используя сочетание клавиш Alt+Enter и отступы пробелами, как мы делали, например тут:

Формула массива в разборе

Логика тут следующая:

  • Формула ИНДЕКС(Список1;ПОИСКПОЗ(0;СЧЁТЕСЛИ($E$1:E1;Список1); 0) выбирает все уникальные элементы из первого списка. Как только они заканчиваются — начинает выдавать ошибку #Н/Д:

    Уникальные из списка1

  • Формула ИНДЕКС(Список2;ПОИСКПОЗ(0;СЧЁТЕСЛИ($E$1:E1;Список2); 0)) аналогичным образом извлекает уникальные элементы из второго списка.
  • Вложенные друг в друга две функции ЕСЛИОШИБКА реализуют вывод сначала уникальных из списка-1, а потом из списка-2 друг за другом.

Обратите внимание, что это формула массива, т.е. после набора ее нужно ввести в ячейку не обычным Enter, а сочетанием клавиш Ctrl+Shift+Enter и затем скопировать (протянуть) вниз на нижестоящие ячейки с запасом.

В английской версии Excel эта формула выглядит как:


=IFERROR(IFERROR(INDEX(Список1, MATCH(0, COUNTIF($E$1:E1, Список1), 0)), INDEX(Список2, MATCH(0, COUNTIF($E$1:E1, Список2), 0))), «») 

Минус у такого подхода в том, что формулы массива ощутимо замедляют работу с файлом, если в исходных таблицах большое (несколько сотен и более) количество элементов. 

Способ 3. Power Query

Если в ваших исходных списках большое количество элементов, например, по несколько сотен или тысяч, то вместо медленной формулы массива лучше использовать принципиально другой подход, а именно — инструменты надстройки Power Query. Эта надстройка по умолчанию встроена в Excel 2016. Если у вас Excel 2010 или 2013, то ее можно отдельно скачать и установить (бесплатно).

Алгоритм действий следующий:

  1. Открываем отдельную вкладку установленной надстройки Power Query (если у вас Excel 2010-2013) или просто идем на вкладку Данные (если у вас Excel 2016).
  2. Выделяем первый список и жмем кнопку Из таблицы/диапазона (From Range/Table). На вопрос про создание из нашего списка «умной таблицы» — соглашаемся:

    Вводим список в Power Query

  3. Открывается окно редактора запросов, где будет видно загруженные данные и имя запроса Таблица1 (можно поменять на свое, если хотите).
  4. Делаем двойной щелчок в заголовок таблицы (слово Список1) и переименовываем на любой другой (например Люди). Каки именно назвать — не важно, но придуманное название нужно запомнить, т.к. его придется использовать потом еще раз при импорте второй таблицы. Объединить две таблицы в дальнейшем получится только если заголовки их столбцов совпадают.
  5. Разворачиваем выпадающий список в левом верхнем углу Закрыть и загрузить и выбираем Закрыть и загрузить в… (Close&Load to…):

    Сохраняем запрос

  6. В следующем диалоговом окне (оно может выглядеть немного по-другому — не пугайтесь) выбираем Только создать подключение (Only create connection):

    Создаем подключение

  7. Повторяем всю процедуру (пункты 2-6) для второго списка. При переименовании заголовка столбца важно использовать то же имя (Люди), что и в предыдущем запросе.
  8. В окне Excel на вкладке Данные (Data) или на вкладке Power Query выбираем Получить данные — Объединить запросы — Добавить (Get Data — Merge Queries — Append):

    Объединяем запросы

  9. В появившемся диалоговом окне выбираем наши запросы из выпадающих списков:

    Параметры слияния

  10. В итоге получим новый запрос, где два списка будут соединены друг под другом. Осталось удалить дубликаты кнопкой Удалить строки — Удалить дубликаты (Delete Rows — Delete Duplicates):

    Удаление дубликатов

  11. Готовый запрос можно переименовать справа на панели параметров, дав ему вменяемое имя (это будет имя таблицы-результата по факту) и все и можно все выгружать на лист командой Закрыть и загрузить (Close&Load):

    Результат

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

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

  • Как собрать несколько таблиц из разных файлов с помощью Power Query
  • Извлечение уникальных элементов из списка
  • Как сравнить два списка между собой на совпадения и отличия


Иногда для удобства требуется объединить три и более списка значений в один.

Пусть дано 5 списков и все они разной длины (см. Файл примера ).

Задача

Объединим все значения из 5 списков в один. Задача объединения 2-х списков решена в одноименной

статье

.

Решение1 (Простое)

Объединенный спискок будем строить на основе функции СМЕЩ()

=СМЕЩ(заголовок первого списка;Номер элемента в списке;Номер списка-1)

Создадим небольшую служебную таблицу для подсчета количества значений в каждом списке и определения позиции первого элемента каждого списка в объединенном списке.

Эта таблица позволит нам сопоставить каждой позиции объединенного списка Номер исходного списка:

=ГПР(СТРОКА()-СТРОКА($H$11);$B$7:$F$8;2;ИСТИНА)

  • выражение СТРОКА()-СТРОКА($H$11) генерирует последовательность 1; 2; 3; 4…
  • функция ГПР() — горизонтальный аналог ВПР() выбирает по позиции первого элемента каждого списка в объединенном списке номер исходного списка.

Номер списка является смещением по столбцам в формуле на основе СМЕЩ()

Подробности можно посмотреть в файле примера на листе Пример2.

Решение2 (сложное, с формулами массива и именованными формулами)

Сначала создадим

именованный диапазон

, содержащий значения из всех списков. Для этого:

  • выделите, диапазон

    A

    2:

    E

    10

    ;
  • на вкладке

    Формулы

    в группе

    Определенные имена

    выберите команду

    Присвоить имя

    ;
  • в поле

    Имя

    введите:

    Диапазон_Списков

    ;
  • убедитесь, что в поле

    Диапазон

    введена формула =пример!$A$2:$E$10
  • нажмите ОК.

Для вывода всех значений из 5 списков в один столбец будем использовать функцию ИНДЕКС() . Эта функция будет последовательно выводить значения из всех ячеек диапазона

Диапазон_Списков

на основании их номера столбца и номера строки. Осталось только определить адреса не пустых ячеек.

Создадим массив пар (номер столбца; номер строки) для всех ячеек диапазона. Для этого применим трюк: значения пары будем хранить в виде обычного числа, но формировать его будем по определенному правилу: правая часть числа будет содержать номер строки (для этого выделяется два разряда, т.е. максимальная длина списка может быть 99), а левая часть числа будет содержать номер столбца. Например, число 512 будет означать: 5-й столбец, 12-ая строка. Естественно, при необходимости можно увеличить разрядность для хранения номеров строк (формула из файла примера позволяет столбцам иметь до 9999 строк).

Технически осуществим это так. Сначала определим номер столбца и строки левого верхнего угла нашего

Диапазона_Списков

. Для этого создайте две

именованные формулы

=МИН(СТОЛБЕЦ(Диапазон_Списков)) и =МИН(СТРОКА(Диапазон_Списков))

Создайте еще одну

именованную формулу

Адреса:

=ЕСЛИ(ЕПУСТО(Диапазон_Списков);»»; —((СТОЛБЕЦ(Диапазон_Списков)-Мин_Столбец+1)&ВЫБОР(ДЛСТР(СТРОКА(Диапазон_Списков)-Мин_Строка+1);»0″;»»)&СТРОКА(Диапазон_Списков)-Мин_Строка+1))

Эта формула вернет массив адресов из нашего диапазона {101;201;301;401;501: 102;202;302;»»;502: 103;203;303;»»;503: 10…}. Вместо адресов пустых ячеек в массиве содержатся значения

Пустой текст

(«»). Номера столбцов и строк отсчитываются от левой верхней ячейки

Диапазона_список

.

Заключительный этап. Формируем объединенный список. Запишем в ячейке следующую формулу: =ЕСЛИОШИБКА(ИНДЕКС(Диапазон_Списков; —ПРАВСИМВ(НАИМЕНЬШИЙ(Адреса;СТРОКА(Z1));2);—ЛЕВСИМВ(НАИМЕНЬШИЙ(Адреса;СТРОКА(Z1)); ДЛСТР(НАИМЕНЬШИЙ(Адреса;СТРОКА(Z1)))-2));»»)

Функция НАИМЕНЬШИЙ() будет последовательно извлекать все числа, содержащие адреса ячеек. Функция ПРАВСИМВ() будет извлекать из этих чисел номер строки, а функция ЛЕВСИМВ() – номер столбца. Эти две функции возвращают текстовые значения, поэтому применим двойное отрицание (—), чтобы преобразовать текст в число (см. статью

Преобразование чисел из текстового формата в числовой (часть 1)

).

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

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

=ЕСЛИОШИБКА(ИНДЕКС(Диапазон_Списков;—ПРАВСИМВ(НАИМЕНЬШИЙ(Адреса;СТРОКА(Z1));4);—ЛЕВСИМВ(НАИМЕНЬШИЙ(Адреса;СТРОКА(Z1));ДЛСТР(НАИМЕНЬШИЙ(Адреса;СТРОКА(Z1)))-4));»»)

Именованную формулу

Адреса

также придется подкорректировать:

=ЕСЛИ(ЕПУСТО(Диапазон_Списков);»»;—((СТОЛБЕЦ(Диапазон_Списков)-Мин_Столбец+1)&ВЫБОР(ДЛСТР(СТРОКА(Диапазон_Списков)-Мин_Строка+1);»000″;»00″;»0″;»»)&СТРОКА(Диапазон_Списков)-Мин_Строка+1))


Примечание

: при объединении большого количества столбцов с количеством строк >100, расчет формулы может притормаживать.

На вашем листе два списка, и некоторые значения в списках дублируются, и вы хотите объединить эти два списка и просто оставить уникальные значения, как показано на скриншотах ниже, как вы можете это сделать?

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

Объединяйте списки без дубликатов с VBA

Объединить списки без дубликатов с Kutools for Excel


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

Чтобы объединить два списка и удалить повторяющиеся значения в Excel, вы можете сделать следующее:

1. Скопируйте один из двух списков и вставьте его в конец другого списка, см. Снимок экрана:

2. Выберите список и щелкните Данные > Удалить дубликаты, см. снимок экрана:

3. в Удалить дубликаты диалоговое окно, если у вашего столбца нет заголовка, снимите флажок У моих данных есть заголовки, А затем нажмите OK. Смотрите скриншот:

4. Затем на экране отобразится диалоговое окно, в котором сообщается, что дубликаты были удалены, щелкните OK. Смотрите скриншот:

Вы можете увидеть результат:


стрелка синий правый пузырь Объединяйте списки без дубликатов с VBA

В Excel VBA также может помочь вам объединить два списка без дубликатов.

1. Держать ALT и нажмите F11 на клавиатуре, чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, и скопируйте VBA в модуль.

VBA: объединять списки без дубликатов

Sub FindUniques()
'Updateby20140313
Dim rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set dic = CreateObject("Scripting.Dictionary")
For j = 1 To InputRng.Columns.Count
    For i = 1 To InputRng.Rows.Count
        xValue = InputRng.Cells(i, j).Value
        If xValue <> "" And Not dic.Exists(xValue) Then
            OutRng.Value = xValue
            dic(xValue) = ""
            Set OutRng = OutRng.Offset(1, 0)
        End If
    Next
Next
End Sub

3. Нажмите Run или нажмите F5 для запуска VBA.

4. На экране появится диалоговое окно, в котором вы можете выбрать диапазон, который хотите объединить. Смотрите скриншот:

5. Нажмите OK, затем появилось другое диалоговое окно, в котором вы можете выбрать ячейку для вывода комбинированного результата. Смотрите скриншот:

6. Нажмите OK. Вы можете видеть, что списки были объединены.

Совет: результат не может сохранить форматирование ячеек после выполнения вышеуказанного VBA.


стрелка синий правый пузырь Объединить списки без дубликатов с Kutools for Excel

С установленным Kutools for Excel, вы можете использовать Выберите дубликаты и уникальные ячейки функция для решения проблемы, объединяющая два списка без дубликатов.

Kutools for Excel включает более 300 удобных инструментов Excel. Бесплатная пробная версия без ограничений в течение 30 дней. Получить сейчас

1. Скопируйте один из двух списков и вставьте его в конец другого списка, выберите новый список, затем щелкните Кутулс > Выберите Инструменты > Выберите дубликаты и уникальные ячейки. Смотрите скриншот:

2. в Выберите дубликаты и уникальные ячейки диалог, проверьте Все уникальные посетители (включая 1-е дубликаты), нажмите Ok.

3. Затем появится диалоговое окно, в котором указано, сколько уникальных значений было выбрано, щелкните OK и Отмена закрыть два диалога. Смотрите скриншот:

4. Скопируйте выбранные уникальные значения и вставьте их в новый столбец. Смотрите скриншот:

Щелкните здесь, чтобы узнать больше о выборе дубликатов и уникальных ячеек.


Относительные статьи:

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

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

  • 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
Узнать больше

Фильтрация и объединение записей из двух списков в один

GK

Дата: Пятница, 27.05.2016, 08:21 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Здравствуйте,

никак не могу разобраться с задачей: есть два списка (4 столбца — имя и фамилия по 2 раза), их нужно объеденить в один список (2 столбца — имя и фамилия), пропуская при этом повторы и пустые строки.
Пример прилагается. Заранее благодарю!

К сообщению приложен файл:

Primer.xls
(35.5 Kb)

Сообщение отредактировал GKПятница, 27.05.2016, 08:43

 

Ответить

китин

Дата: Пятница, 27.05.2016, 08:32 |
Сообщение № 2

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

не приложился пример. размер проверьте (не более 100 кб)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

GK

Дата: Пятница, 27.05.2016, 08:44 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

китин, спасибо, исправлено :)

 

Ответить

китин

Дата: Пятница, 27.05.2016, 08:53 |
Сообщение № 4

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

может так ? формула массива

Код

=ЕСЛИОШИБКА(ИНДЕКС(A$4:A$24;НАИМЕНЬШИЙ(ЕСЛИ(ПОИСКПОЗ($A$4:$A$24&$B$4:$B$24;$A$4:$A$24&$B$4:$B$24;0)=СТРОКА($A$4:$A$24)-3;СТРОКА($A$4:$A$24)-3);СТРОКА(A1)));»»)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Pelena

Дата: Пятница, 27.05.2016, 08:57 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Можно ещё скопировать вторую часть из двух столбцов под первую и сделать сводную таблицу


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

GK

Дата: Пятница, 27.05.2016, 08:59 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Спасибо, но со второго списка данные не собирает… Может не так загрузилось?

Сообщение отредактировал GKПятница, 27.05.2016, 09:00

 

Ответить

GK

Дата: Пятница, 27.05.2016, 09:04 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

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

 

Ответить

китин

Дата: Пятница, 27.05.2016, 09:08 |
Сообщение № 8

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

ну раз так тады так тоже массивная

Код

=ЕСЛИОШИБКА(ИНДЕКС(A$4:A$24;НАИМЕНЬШИЙ(ЕСЛИ(ПОИСКПОЗ($A$4:$A$24&$B$4:$B$24&$C$4:$C$24&$D$4:$D$24;$A$4:$A$24&$B$4:$B$24&$C$4:$C$24&$D$4:$D$24;0)=СТРОКА($A$4:$A$24)-3;СТРОКА($A$4:$A$24)-3);СТРОКА(A1)));»»)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

GK

Дата: Пятница, 27.05.2016, 09:25 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

китин, спасибо, но ведь нужно в один список (имя1|фамилия1 + имя2|фамилия2 ) объединить, а получается как исходник…

 

Ответить

китин

Дата: Пятница, 27.05.2016, 09:54 |
Сообщение № 10

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

(имя1|фамилия1 + имя2|фамилия2 ) объединить

в одну ячейку?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

GK

Дата: Пятница, 27.05.2016, 09:57 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

китин, нет, имя 1 и имя 2 — в один столбец, фамилия 1 и фамилия 2 — в другой. Как в файле. Чтобы из 4 столбцов получилось 2

 

Ответить

китин

Дата: Пятница, 27.05.2016, 10:24 |
Сообщение № 12

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

ну тогда может так? в дополнении к формуле из поста № 8 тоже массивная

Код

=ЕСЛИОШИБКА(ИНДЕКС($C$4:$C$24&» «&$D$4:$D$24;ПОИСКПОЗ(K4;$A$4:$A$24&» «&$B$4:$B$24;0));»»)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Pelena

Дата: Пятница, 27.05.2016, 10:44 |
Сообщение № 13

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Вариант с доп. столбцами

К сообщению приложен файл:

6822806.xlsx
(17.6 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

китин

Дата: Пятница, 27.05.2016, 10:45 |
Сообщение № 14

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

GK

Дата: Пятница, 27.05.2016, 11:07 |
Сообщение № 15

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Pelena, огромное спасибо, пробую в оригинальной таблице, напишу как будет работать :)

 

Ответить

китин

Дата: Пятница, 27.05.2016, 13:05 |
Сообщение № 16

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

????


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

GK

Дата: Пятница, 27.05.2016, 13:24 |
Сообщение № 17

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Pelena, спасибо протестировала на оригинале, работает!

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

К сообщению приложен файл:

9407989.xlsx
(19.5 Kb)

 

Ответить

GK

Дата: Пятница, 27.05.2016, 13:26 |
Сообщение № 18

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

китин, Спасибо большое, работает!

 

Ответить

_Boroda_

Дата: Пятница, 27.05.2016, 13:31 |
Сообщение № 19

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Предположу, что порядок расположения граждан в списке Вам без разницы. Тогда можно вот так (без допстолбцов). Если порядок имеет значение, то тоже можно, но тогда массивная формула будет.
Формулы НЕмассивные!
Фамилия-имя (ввести сначала в F4, в G4 (или наоборот), затем оба столбца протянуть вниз (можно сразу оба, можно по очереди), один столбец без другого работать не будет)

Код

=ЕСЛИОШИБКА(ЕСЛИОШИБКА(ПРОСМОТР(;-1/ЕНД(ПОИСКПОЗ($A$4:$A$24&$B$4:$B$24;$F$2:$F3&$G$2:$G3;));A$4:A$24);ПРОСМОТР(;-1/(C$4:C$24<>»»)/ЕНД(ПОИСКПОЗ($C$4:$C$24&$D$4:$D$24;$F$2:$F3&$G$2:$G3;));C$4:C$24));»»)

Кол-во

Код

=СЧЁТЕСЛИМН(A$4:C$24;F4;B$4:D$24;ЕСЛИ(G4=»»;;G4))

Если единички нужно скрыть, то можно условным форматированием или (как у меня) форматом ячейки
[>1]0;
Рядом розовое — аналогично, только с использованием динамических диапазонов

Файл перевложил. Данные взял из последнего файла Планеты
http://www.planetaexcel.ru/forum….e655060


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

GK

Дата: Пятница, 27.05.2016, 13:36 |
Сообщение № 20

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

_Boroda_,
Спасибо, интересное решение, работает, попробую на оригинале.

 

Ответить

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

Файлы для скачивания:

Файл Описание Размер файла: Скачивания
Скачать этот файл (P_Vozmoj_02.zip)Пример   6 Кб 2544

Графически эта задача выглядит, примерно, так:

Как быстро объединить данные из двух таблиц?

Шаг 1

Приступаем к решению. Встаем в ячейку «D2» и вводим «=ВПР(«:

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_2.png

Шаг 2

Начинаем вводить аргументы функции: «Искомое_значение» (Что будем искать?) вводим ячейку, в которой содержится значение (фамилия), которое нам необходимо найти во второй таблице — «B2«:

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_3.png

Шаг 3

Ставим «;«. Следующий аргумент: «Таблица» (Где будем искать?) вводим диапазон второй таблицы, в которой мы будем искать значения (фамилии) из первой — «G6:H10«:     

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_4.png

Шаг 4

Ставим «;«. Следующий аргумент: «Номер_столбца» (Из какого столбца подставлять данные?) вводим номер столбца, который содержит интересующие нас данные (отдел) так как этот столбец по счету слева — второй, вводим цифру «2«:         

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_5.png

Шаг 5

Ставим «;«. Следующий аргумент: «Интервальный_просмотр» вводим слово «ЛОЖЬ«:        

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_6.png

Шаг 6

Закрываем скобку и нажимаем «Enter«. Получаем результат — в ячейке «D2» мы получили название отдела «ОПТ»:

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_7.png

Шаг 7

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

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_8.png

Шаг 8

Нажимаем на клавиатуре кнопку «F4«, перед буквами и цифрами диапазона должны будут появиться знаки «$«, если это произошло нажимаем клавишу «Enter«:

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_9.png

Шаг 9

Вот теперь можно копировать формулу на нижние ячейки и получать полноценный результат:

kak-bystro-ob-edinit-dannye-iz-dvukh-tablits_10.png

Добавить комментарий

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 (по категориям)

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

Понравилась статья? Поделить с друзьями:
  • Как соединить содержимое ячейки в excel
  • Как соединить содержимое двух ячеек в excel
  • Как соединить содержание двух ячеек в excel
  • Как соединить слова в ячейках excel
  • Как соединить слова в excel в одном столбце