Добавить в корзинуПозвонить
Найти в Дзене
Web-Admin

MS Excel - объединение ячеек по условию

По названию статьи многие подумают, что здесь пойдёт речь о такой функции Excel, как Сцепить. Но, нет, к сожалению эта функция не поддерживает условий и с помощью этой функции можно объединить только конкретные ячейки. А вот, если потребуется условие, то данной функции будет недостаточно. К примеру в Excel есть такая таблица: И нужно добиться того, что бы осталась всего одна строка с конкретным ФИО и что бы в столбце контакты объединились абсолютно все записи. Когда таких записей с десяток, то можно и в ручную объединить эти ячейки, к примеру с той же самой функцией СЦЕПИТЬ, а когда таких записей несколько сотен, а то и тысяч, то такого добиться уже невозможно. Такое даже не под силу MS Access, казалось бы - это СУБД и ей должно быть это под силу, но нет и здесь такой функции нет. И что в Excel, что в Access это можно реализовать двумя способами. Программирование на VBA достаточно сложное дело и поэтому в данному случае лучше выбрать Power Query. Начать работу с Power Query в версии о

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

Пример функции сцепить в MS Excel
Пример функции сцепить в MS Excel

А вот, если потребуется условие, то данной функции будет недостаточно. К примеру в Excel есть такая таблица:

Пример таблицы из Excel
Пример таблицы из Excel

И нужно добиться того, что бы осталась всего одна строка с конкретным ФИО и что бы в столбце контакты объединились абсолютно все записи. Когда таких записей с десяток, то можно и в ручную объединить эти ячейки, к примеру с той же самой функцией СЦЕПИТЬ, а когда таких записей несколько сотен, а то и тысяч, то такого добиться уже невозможно.

Такое даже не под силу MS Access, казалось бы - это СУБД и ей должно быть это под силу, но нет и здесь такой функции нет.

И что в Excel, что в Access это можно реализовать двумя способами.

  1. Написать программу на VBA, которая будет группировать данные из одной ячейки или нескольких, и объединять другие ячейки.
  2. Воспользоваться дополнением Power Query от Microsoft, где потребуется всего одна строчка кода. Если у вас версия MS Office до 2013, то Power Query потребуется скачать с сайта Microsoft, а если после 2016, то это дополнение уже присутствует в Excel.

Программирование на VBA достаточно сложное дело и поэтому в данному случае лучше выбрать Power Query.

Начать работу с Power Query в версии офиса до 2013 года нужно будет из вкладки Power Query, а в версии офиса после 2016 года нужно будет из вкладки Данные. И это единственное отличие.

MS Excel 2016
MS Excel 2016
MS Excel 2010
MS Excel 2010

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

-5

Дальше на вкладке Power Query (Excel до 2013) выбрать из таблицы или диапазона

-6

Если Excel после 2016, то на вкладке Данные нужно выбрать

-7

После этого, не зависимо от того, какая версия Office у вас установлена, все действия будут одинаковыми.

В появившемся окне нужно выбрать "Группировать По"

Power Query
Power Query

В появившемся окне необходимо выбрать "Поле группировки". По этому полю будут объединяться все записи. Так же необходимо прописать "Имя нового столбца". В ячейках данного столбца будут сохранять данные по конкретной группировке. И последний пункт - в поле операция нужно выбрать "Все строки".

-9

В итоге получится следующего вида таблица:

-10

В левом верхнем углу этой таблицы нужно нажать на иконку и выбрать "Добавить пользовательский столбец"

-11

В появившемся окне нужно назвать новый столбец и в окне пользовательская формула написать = Text.Combine([Таблица][Контакты], ", "), где [Таблица] - это столбец, сделанный на предыдущем шаге, [Контакты] - это столбец исходной таблицы, данные из которой нужно объединить, и после запятой идёт разделитель объединяемых данных.

-12

В итоге получится следующая таблица:

-13

И нажав кнопку Закрыть и загрузить все эти данные окажутся на новом листе MS Excel

-14

-15