В excel склеить ячейки
Объединение ячеек в Microsoft Excel
При работе в программе Excel часто возникают ситуации, когда нужно соединить нескольких ячеек в одну (например, чтобы сделать заголовок).
Сейчас мы разберем все возможные варианты. Первые два способа подойдут в случае, если нужно склеить пустые или почти пустые ячейки (частично заполненные). Другие же соединят не только сами ячейки, но и их содержимое.
Самый простой способ
1 . Выделяем то, что нужно объединить. Для этого нажимаем левую кнопку мышки на крайней ячейке и, не отпуская мышку, тянем до тех пор, пока нужные ячейки не обрисуются рамкой.
2 . Нажимаем на кнопку на вкладке «Главная» (вверху).
По умолчанию эта кнопка соединяет ячейки и помещает их содержимое в центре. Но есть и другие варианты: чтобы их открыть, нужно нажать на маленькую стрелку справа от кнопки.
Еще один простой способ
1 . Выделяем нужные ячейки и жмем по одной из них правой кнопкой мышки. Появляется контекстное меню, в котором выбираем пункт «Формат ячеек».
2 . В окошке выбираем вкладку «Выравнивание» и ставим галочку напротив пункта «Объединение ячеек», после чего нажимаем OK.
Объединение ячеек с данными
Если вы собираетесь соединить несколько ячеек, в которых уже есть информация, учитывайте, что в результате будут сохранены не все данные. Часть информации удалится.
Чтобы этого не произошло, объединять их нужно по-другому. Есть несколько способов: через сцепление данных, при помощи программы Блокнот и через макрос.
Первый способ (сцепление) я бы рекомендовал начинающим пользователям, второй (Блокнот) – любителям необычных решений, а третий (макрос) – тем, кто знает, что такое Visual Basic.
Способ первый (через сцепление)
Шаг 1: склеиваем данные
Сначала нужно склеить данные, то есть соединить их друг с другом. Делается это в новой ячейке через функцию «Сцепить» или через знак &. Покажу на примере оба варианта, а вы уж выбирайте, какой больше нравится.
Склеивание через функцию «СЦЕПИТЬ» . Допустим, у нас есть отдельно имя, фамилия и отчество. Все эти данные нужно объединить, а для этого сначала склеить их.
1 . Щелкаем по пустой ячейке.
2 . Печатаем знак = и большими буквами слово СЦЕПИТЬ
3 . Открываем скобку и щелкаем по первой ячейке с данными, затем печатаем точку с запятой и щелкаем по второй, затем опять точку с запятой – и по третьей. После это закрываем скобку.
4 . Нажимаем клавишу Enter на клавиатуре.
Все данные слепятся в одну сплошную строку. Если же их нужно каким-то образом разделить (пробелом, запятой и т.д.), этот символ также нужно добавить в формулу, но только в кавычках. Пример знака – в качестве разделителя:
То же самое и с пробелом: его нужно будет напечатать в кавычках, а их разделить точкой с запятой:
Склеивание через знак & . Находится этот символ там же, где цифра 7 на клавиатуре. Набирать его нужно на английской раскладке при зажатой клавише Shift.
Принцип почти такой же, как и при склеивании через функцию СЦЕПИТЬ:
1 . Щелкаем в пустой ячейке и печатаем в ней знак =
2 . Нажимаем на первую ячейку с данными, печатаем символ & и нажимаем на вторую ячейку, затем опять вводим & и нажимаем на третью и так далее.
Как и в предыдущем случае, любой дополнительный символ (разделитель) должен быть указан в кавычках.
Шаг 2: убираем дубли
Не важно, каким способом, но данные мы склеили.
Если нужно получить такой же результат и для остальных ячеек, эту «формулу» можно растянуть:
- Щелкаем по ячейке с результатом
- Наводим на маленький черный квадратик внизу справа
- Когда курсор примет вид тонкого черного плюса, нажимаем левую кнопку мышки и, не отпуская ее, растягиваем по другим ячейкам
У меня получилось вот что:
Подробнее о «растягивании» можно узнать из вот этого урока.
Всё это, кончено, хорошо и замечательно, но есть одна проблемка. Так как данные мы склеили через формулу, то результат этих действий будет виден только если сохранится оригинал. Другими словами, и новые и старые ячейки должны остаться на месте.
Иногда это подходит, но что делать, если нужны только склеенные данные? Выход есть!
1 . Выделяем новые (склеенные) ячейки.
2 . Щелкаем по любой из них правой кнопкой мышки и из меню выбираем «Копировать».
3 . Выделяем какие-нибудь другие пустые ячейки.
4 . Нажимаем по любой из них правой кнопкой мышки и выбираем «Специальная вставка».
5 . В окошке выбираем пункт «Значения» (вверху) и нажимаем ОК.
В итоге получаем те же самые склеенные данные, но уже не в виде формулы (которая без оригинала не работает), а как обычный текст.
Собственно, теперь все предыдущие данные можно удалить, а эти (новые) скопировать и вставить на их место.
Способ второй (через Блокнот)
Честно говоря, мне этот способ даже больше нравится – он быстрее.
1 . Выделяем в Экселе ячейки с нужными данными (можно выделить целые столбы/строки).
2 . Копируем их (правая кнопка мыши – Копировать).
3 . Открываем программу Блокнот: Пуск – Все программы – Стандартные — Блокнот. Или открываем Пуск и печатаем слово блокнот в поле для поиска (внизу).
4 . Вставляем в окно программы скопированные данные (правой кнопкой мышки по пустому месту – Вставить).
5 . Копируем символ табуляции.
Для этого в пустой строчке Блокнота (перейти на нее можно, нажав на Enter) нажимаем один раз клавишу Tab на клавиатуре.
Указатель сразу перемещается чуть правее. Зажимаем левую кнопку мышки и выделяем этот отрезок, который визуально похож на десяток пробелов. Затем копируем (правой кнопкой по выделенному – Копировать).
6 . Вверху программы Блокнот нажимаем на пункт «Правка» и выбираем «Заменить…».
7 . В первое поле («Что:») вставляем скопированный символ табуляции, а во второе поле («Чем:») вставляем необходимый нам разделитель, например, жмем клавишу пробел.
8 . Нажимаем на кнопку «Заменить все» и закрываем это маленькое окошко.
После этого данные в Блокноте немного изменятся – текст как будто бы чуть-чуть сожмется.
9 . Выделяем все это в Блокноте и копируем.
10 . Переходим в программу Excel и вставляем скопированные данные (удалив предыдущие).
Способ третий (макрос)
Еще один вариант объединения ячеек в Экселе без потери данных. Он чуть более сложный — для тех, кто знает, что такое Visual Basic.
Данный способ я позаимствовал из вот этой статьи. Кстати, очень клёвый сайт, советую всем, кто работает с программой Excel.
1 . Открываем вкладку «Вид» и нажимаем на кнопку «Макросы».
2 . Печатаем название для макроса, нажимаем «Создать».
3 . Откроется редактор Visual Basic. Вставляем туда следующий код:
Sub MergeToOneCell()
Const sDELIM As String = » » ‘разделитель в данном случае пробел.
Dim rCell As Range
Dim sMergeStr As String
If TypeName(Selection) <> «Range» Then Exit Sub ‘если выделяются не ячейки, тогда программа выходит
With Selection
For Each rCell In .Cells
sMergeStr =sMergeStr & sDELIM & rCell.Text ‘процесс сбора текста из ячеек
Next rCell
Application.DisplayAlerts = False ‘выключаем обычное предупреждение о потере текста
.Merge Across:=False ‘объединение ячеек
Application.DisplayAlerts = True
.Item(1).Value = Mid(sMergeStr, 1 + Len(sDELIM)) ‘ добавляем к объединенным ячейкам суммированный текст
End With
End Sub
4 . Закрываем редактор Visual Basic.
Теперь, чтобы объединить ячейки с данными, нужно их выделить, после чего на вкладке «Вид» нажать кнопку «Макросы» и в новом окошке на «Выполнить».
Правда, такой файл нужно будет сохранить в специальном формате с поддержкой макросов: Файл – Сохранить как – в поле «Тип файла» выбрать «Книга Excel с поддержкой макросов».
3 способа склеить текст из нескольких ячеек
Надпись на заборе: «Катя + Миша + Семён + Юра + Дмитрий Васильевич +
товарищ Никитин + рыжий сантехник + Витенька + телемастер Жора +
сволочь Редулов + не вспомнить имени, длинноволосый такой +
ещё 19 мужиков + муж = любовь!»
Способ 1. Функции СЦЕПИТЬ, СЦЕП и ОБЪЕДИНИТЬ
В категории Текстовые есть функция СЦЕПИТЬ (CONCATENATE) , которая соединяет содержимое нескольких ячеек (до 255) в одно целое, позволяя комбинировать их с произвольным текстом. Например, вот так:
Нюанс: не забудьте о пробелах между словами — их надо прописывать как отдельные аргументы и заключать в скобки, ибо текст.
Очевидно, что если нужно собрать много фрагментов, то использовать эту функцию уже не очень удобно, т.к. придется прописывать ссылки на каждую ячейку-фрагмент по отдельности. Поэтому, начиная с 2016 версии Excel, на замену функции СЦЕПИТЬ пришла ее более совершенная версия с похожим названием и тем же синтаксисом — функция СЦЕП (CONCAT) . Ее принципиальное отличие в том, что теперь в качестве аргументов можно задавать не одиночные ячейки, а целые диапазоны — текст из всех ячеек всех диапазонов будет объединен в одно целое:
Для массового объединения также удобно использовать новую функцию ОБЪЕДИНИТЬ (TEXTJOIN) , появившуюся начиная с Excel 2016. У нее следующий синтаксис:
=ОБЪЕДИНИТЬ( Разделитель ; Пропускать_ли_пустые_ячейки ; Диапазон1 ; Диапазон2 . )
- Разделитель — символ, который будет вставлен между фрагментами
- Второй аргумент отвечает за то, нужно ли игнорировать пустые ячейки (ИСТИНА или ЛОЖЬ)
- Диапазон 1, 2, 3 . — диапазоны ячеек, содержимое которых хотим склеить
Например:
Способ 2. Символ для склеивания текста (&)
Это универсальный и компактный способ сцепки, работающий абсолютно во всех версиях Excel.
Для суммирования содержимого нескольких ячеек используют знак плюс «+«, а для склеивания содержимого ячеек используют знак «&» (расположен на большинстве клавиатур на цифре «7»). При его использовании необходимо помнить, что:
- Этот символ надо ставить в каждой точке соединения, т.е. на всех «стыках» текстовых строк также, как вы ставите несколько плюсов при сложении нескольких чисел (2+8+6+4+8)
- Если нужно приклеить произвольный текст (даже если это всего лишь точка или пробел, не говоря уж о целом слове), то этот текст надо заключать в кавычки. В предыдущем примере с функцией СЦЕПИТЬ о кавычках заботится сам Excel — в этом же случае их надо ставить вручную.
Вот, например, как можно собрать ФИО в одну ячейку из трех с добавлением пробелов:
Если сочетать это с функцией извлечения из текста первых букв — ЛЕВСИМВ (LEFT) , то можно получить фамилию с инициалами одной формулой:
Способ 3. Макрос для объединения ячеек без потери текста.
Имеем текст в нескольких ячейках и желание — объединить эти ячейки в одну, слив туда же их текст. Проблема в одном — кнопка Объединить и поместить в центре (Merge and Center) в Excel объединять-то ячейки умеет, а вот с текстом сложность — в живых остается только текст из верхней левой ячейки.
Чтобы объединение ячеек происходило с объединением текста (как в таблицах Word) придется использовать макрос. Для этого откройте редактор Visual Basic на вкладке Разработчик — Visual Basic (Developer — Visual Basic) или сочетанием клавиш Alt + F11 , вставим в нашу книгу новый программный модуль (меню Insert — Module) и скопируем туда текст такого простого макроса:
Теперь, если выделить несколько ячеек и запустить этот макрос с помощью сочетания клавиш Alt + F8 или кнопкой Макросы на вкладке Разработчик (Developer — Macros) , то Excel объединит выделенные ячейки в одну, слив туда же и текст через пробелы.
Как в Excel объединить текст из двух и нескольких ячеек в одну
Объединение текста нескольких ячеек в одну – базовая функция при работе с табличными данными, с ее п.
Объединение текста нескольких ячеек в одну – базовая функция при работе с табличными данными, с ее помощью содержание произвольного количества полей можно сцеплять нужным образом и размещать в свободных ячейках. Она используется при составлении пофамильных списков сотрудников, отчетов различных направлений и других операциях с большими массивами информации. Для объединения ячеек есть два способа: с потерей данных и без потери. В первом случае в объединенной ячейке остается только одно значение, во втором – сохраняется весь текст. Второй способ предполагает как минимум четыре варианта объединения: с использованием двух функций («Сцеп-сцепить» и «Объединить»), при помощи символа амперсанд и с применением макроса. В статье подробно разберемся, как в Excel объединить текст нескольких ячеек в одну.
С помощью функции
Excel предусматривает несколько функций для объединения ячеек. Для начала, расскажем о самой простой и «теряющей» информацию. Если интересует, как в Экселе соединить текст из двух ячеек в одну, оставив только одно значение – то вам понадобится функция «объединить» в разделе «Формат ячейки».
- Выделите мышкой ячейки, которые нужно объединить.
- По образовавшемуся полю щелкните правой кнопкой мыши.
- Выберите пункт «Формат ячеек».
- В появившемся окне зайдите в раздел «Выравнивание».
- Отметьте галочкой пункт «Объединить ячейки» и нажмите «Ок». Выделенные поля объединяться в одну большую с сохранением содержания первой ячейки.
Также эта функция есть в графе «Главная» в разделе «Выравнивание» в верхней части экрана.
С помощью функции «Сцеп-сцепить»
В ранних версиях Excel для объединения текста ячеек применялась функция «Сцепить», в новых вариантах программы ее заменили функцией «Сцеп». Для ее использования:
- Щелкните по пустой ячейке в Excel.
- Поставьте знак «=» и большими буквами введите «Сцепить» либо «Сцеп».
- В скобках после формулы кликните по ячейке, которая должна быть первой в объединенной ячейке, либо введите ее адрес вручную (например, A1). Затем поставьте точку с запятой, после щелкните или напишите вторую ячейку. Затем поставьте точку с запятой и отметьте третье поле. После перечисления адресов нажмите «Enter». В поле, где вбивали формулу, появится объединенный текст. Он появится без пробелов между текстовыми блоками. Чтобы этого избежать, отбейте пробел в каждой отдельно взятой ячейке после находящегося текста, либо после адреса ячейки в формуле добавьте пробел вручную, написав « » (пробел в кавычках). Пробел в формуле также отделяется от остальных элементов точкой с запятой.
Как в Экселе соединить текст из двух ячеек в одну с помощью функции «Объединить»
«Объединить» — усовершенствованная вариация функции «Сцеп». Ее отличие в том, что параметры вводятся единожды на этапе написания функции. В частности, разделитель придется указать один раз для содержимого всех ячеек. Для того чтобы воспользоваться функцией «Объединить» нужно выполнить действия:
- В пустой ячейке поставьте знак «=» и напишите большими буквами «Объединить».
- В скобках после формулы укажите разделитель в кавычках (« » ,«,»,« и »), затем поставьте точку с запятой. Второй параметр формулы – это игнорирование пустых полей. Если они не должны учитываться в формуле, напишите «1», в ряде версий этот параметр обозначается словом «Истина» или «Ложь». Затем перечислите через запятую ячейки, которые нужно объединить, и нажмите «Enter».
В итоге формула должна иметь вид: «=ОБЪЕДИНИТЬ(« »;ИСТИНА; «A1»; «A2»; «A3»).
Если в A1 – «Иванов», в А2 – «Иван», в А3 – «Иванович», то после нажатия «Enter» в пустой ячейке появится «Иванов Иван Иванович».
С помощью символа «&»
Четвертый способ объединить ячейки – использовать амперсанд ( «&»). Для этого:
- В пустой ячейке наберите «=».
- Напишите нужную ячейку, например, А1, затем поставьте знак «&», потом в кавычках введите разделитель. Это может быть пробел или запятая, он также помещается в кавычки, потом введите вторую ячейку, которую нужно объединить. Если их больше двух, пробел выставите после каждой нового поля. Формула должна выглядеть так: «=А1&« »&А2& « »&А3». После нажатия «Enter» содержимое ячеек объединится.
С помощью макроса
Макрос в Excel – это сервис для автоматизации повторяющихся действий, он представляет собой записанную последовательность примененных функций и щелчков мышью для последующего воспроизводства. Используется, если нужно регулярно выполнять типовые задачи, в которых меняются данные, но не структура. Например, макросы используются при составлении ежемесячных отчетов о заработной плате, в которых меняются только цифры, но не метод расчета. Тогда макрос избавит пользователя от необходимости регулярно вручную настраивать и использовать формулы.
Чтобы записать макрос:
- В разделе «Разработчик» в графе «Код» нажмите на клавишу «Записать макрос».
- В появившемся окне выберите имя макроса, чтобы потом было удобнее его искать, присвойте ему сочетание клавиш и место хранения, добавьте описание.
- Нажмите «Ок», затем точно и без ошибок (потому что макрос записывает и ошибки тоже) проделайте алгоритм.
- Вернитесь во вкладку «Разработчик» и «Код» и нажмите «Остановить запись».
Макрос записывается в виде кода Visual Basic для приложений на одноименном языке программирования, который доступен для редактирования при нажатии комбинации ALT + F11. При ручном редактировании становится доступным правка записанного макроса, однако это требует дополнительных знаний и недоступно для рядового пользователя. Также макросы способны работать в нескольких продуктах Microsoft Office одновременно. Выполняется макрос нажатием присвоенной комбинации либо через окно «Макрос», которое вызывается комбинацией ALT + F8.
LiveInternetLiveInternet
—Рубрики
- Кулинария (26405)
- Пирожки (3343)
- Пироги несладкие (3093)
- Второе (2842)
- Заготовки (2780)
- Торты (1963)
- Салаты и закуски (1511)
- Пироги сладкие (1426)
- Печенье, пончики (1125)
- Без выпечки (852)
- Хлеб Хлебопечка (811)
- Консервация (757)
- Блины и оладьи (718)
- Напитки (582)
- Кремы глазури и т.д. (511)
- Первое (419)
- Мультиварка (394)
- Варенья.Компоты и т.д. (361)
- Кексы (354)
- Меню (337)
- Микроволновка (319)
- Рыба (296)
- Сушка.Заморозка. (266)
- Коржики Лепешки (219)
- Соления (218)
- Из кабачков (178)
- Соусы (176)
- Из молока и творога (175)
- Выпечка из слоеного теста (158)
- Дрожжевое тесто (150)
- Из фарша (145)
- Из капусты (123)
- Рулеты (39)
- Уикенд (13)
- Из лаваша (8)
- Из тыквы (7)
- Чебуреки (5)
- В горшочках (4)
- Вязание (15946)
- Вязание спицами кофточки (3957)
- Вязание спицами (1871)
- Вязание крючком (1651)
- Вязание спицами носки и тапочки (1159)
- Вязаные головные уборы (1147)
- Вязание крючком кофточки (1102)
- Вязание спицами кардиганы (1006)
- Платки, шали, палантины (1006)
- Вязание крючком скатерти, салфетки (843)
- Хочу связать (687)
- Плед (400)
- Вязание крючком платья (324)
- Вязание спицами платья (275)
- Вязание крючком хотелки (219)
- Вязание крючком носочки и тапочки (184)
- Вязание крючком коврики (170)
- Для девочек (165)
- Для малышей (136)
- Сумки (124)
- Вязание крючком кардиганы (96)
- Вязание крючком юбки (87)
- Вязание крючком топы (84)
- Вязание спицами юбки (47)
- Вязание спицами топы (44)
- Вязание спицами носочки и тапочки (15)
- Дача Сад Огород (14958)
- Многолетники (775)
- Агротехника (729)
- Томаты (578)
- Дом.Своими руками (571)
- Комнатные растения (528)
- Розы (500)
- Огурцы (494)
- Болезни и вредители (374)
- Удобрения (324)
- Ландшафтный дизайн (296)
- Малина Смородина Крыжовник итд (274)
- Однолетники (230)
- Цветники (229)
- Лук.Чеснок (191)
- Клубника.Земляника (178)
- Работы по месяцам (105)
- Прививки и обрезка (103)
- Морковь Свекла Редька Репа Редис (94)
- Зелень.Душистые травы. (81)
- Семечковые (81)
- Капуста (74)
- Косточковые (66)
- Кабачки патиссоны тыква арбузы дыни (60)
- Перец Баклажаны (52)
- Животноводство (17)
- Бобы Горох (15)
- Здоровье (6642)
- Зарядка (1226)
- Диета (911)
- Лекарственные травы (671)
- Лекарства (508)
- Диагностика (390)
- Инсульт Инфаркт Давление (213)
- Диабет (90)
- Шитье (6581)
- Женское (1570)
- Выкройки (1050)
- Техника шитья (676)
- Пэчворк (425)
- Детское (405)
- Сумки (333)
- Скатерти Подушки Постельное (134)
- Мужское (46)
- Вышивка (6543)
- Хотелки (960)
- Пейзажи (852)
- Миниатюры (825)
- Цветы (785)
- Скатерти. Салфетки.Кайма. (479)
- Подушки (298)
- Игрушки НГ (242)
- Птицы (208)
- Программы и др. (200)
- Стежка. (181)
- Бискорню и кривульки (177)
- Вышивка лентами (89)
- Сапожки НГ (87)
- Алфавиты (63)
- Хардангер (8)
- Полезности (5355)
- Компьютер (48)
- Вышивка до 1000 (4163)
- Пейзажи Натюрморты Люди (1349)
- Хотелки (1222)
- Миниатюры (1099)
- Скатерти салфетки кайма подушки (834)
- Цветы (666)
- Бискорню и кривульки (98)
- Стежка (45)
- Куклы (3351)
- Вязаные игрушки (1012)
- Тильды (339)
- Большеножки (281)
- Имидж (1702)
- Уход за телом (759)
- Косметика своими руками (285)
- Гардероб (148)
- Косметика (115)
- Духи и туалетная вода (58)
- Картины и фотографии (1641)
- Психология (1599)
- Домоводство (1503)
- Уборка (315)
- Flay Ledi (117)
- Стирка.Глажка. (99)
- Языки (980)
- Плетение из газет (557)
- Интерьер (542)
- История (501)
- Книги (411)
- Цитаты Стихи (379)
- Музыка (368)
- Поделки из бумаги (227)
- Кино (209)
- Холодный фарфор Соленое тесто Пластилин (171)
- Бисер (78)
- Рыбалка (22)
- Игры (11)
—Поиск по дневнику
—Друзья
—Постоянные читатели
—Сообщества
—Статистика
>3 способа склеить текст из разных ячеек Excel
3 способа склеить текст из разных ячеек Excel
3 способа склеить текст из разных ячеек Excel
Очень часто возникает необходимость собрать текст из разных ячеек и соединить в одну. Самое худшее решение — ручное копирование и вставка в итоговую ячейку. Если ячеек много, то такая работа превратится в нудное мучение, да и вероятность ошибки весьма высока. Сегодня мы рассмотрим 4 способа склеивания/сцепки текста формулами Excel.
Оператор конкатенации
В Excel есть специальный символ, который используется для склеивания частей текста. Этот символ — амперсанд (&). Сама операция соединения называется конкатенацией (от англ. слова Concatinate). Амперсанд нужно использовать в формулах, вставляя его между каждой парой соединяемых строк. Например, чтобы сцепить текст из ячеек A1, A2 и A3 нужно ввести формулу:
=A1&A2&A3
Вместо ссылок на ячейки могут быть и текстовые константы (это относится и к двум следующим способам). Только не забывайте, что любой текст в формулах Excel должен быть заключен в кавычки. Например, чтобы сцепить текст «До дедлайна осталось » и значение из ячейки A1 нужна формула:
=»До дедлайна осталось «&A1
Минус этого способа — отсутствие разделителей между соединяемыми частями текста. Если нужно отделить куски пробелами — их придется добавлять вручную, например:
=A1&» «&A2
Этот же оператор используется для склеивания текста в синтаксисе языка VBA
Функции СЦЕПИТЬ / СЦЕП
Второй способ — использование функции СЦЕПИТЬ. Она, по сути, имитирует работу оператора конкатенации, но от нас не требуется вводить его вручную. Части соединяемого текста нужно указать в качестве аргументов функции, например:
=СЦЕПИТЬ(A1;A2;A3)
=СЦЕПИТЬ(«До дедлайна осталось «;A1)
=СЦЕПИТЬ(A1;» «;A2)
Минус у данного способа тот же, что и у предыдущего — нужно вручную вводить разделители при необходимости. Кроме того, функция СЦЕПИТЬ требует указания каждой ячейки по отдельности. Ее наследница, функция СЦЕП, которая появилась в новых версиях Excel, умеет соединить весь текст в указанном диапазоне, что гораздо удобнее. Вместо того, чтобы кликать каждую ячейку, можно выделить сразу весь диапазон, например:
=СЦЕП(A1:B10)
Формула выше склеит последовательно текст из 20 ячеек диапазона A1:B10. Склеивание происходит в следующем порядке: слева направо до конца строки, а потом переход на следующую строку.
Кроме того, данную функцию можно использовать как формулу массива, передавая ей в качестве аргумента условие для соединения строк. Например, формула
соединит между собой только те ячейки столбца B, рядом с которыми в столбце A указано «ОК».
Функция ОБЪЕДИНИТЬ
В Excel 2016 появилась еще одна функция, которая умеет соединять текстовые строки. Она является усовершенствованной версией функции СЦЕП. В нее добавлена возможность задавать разделитель (1-ый аргумент) и указывать ей, как обрабатывать пустые ячейки (2-ой аргумент). Например, формула
=ОБЪЕДИНИТЬ(«, «;ИСТИНА;A2:A10)
соединит ячейки диапазона A2:A10, проставив после каждой запятую и пробел, но при этом пустые ячейки будут пропущены. Если заменить ИСТИНА на ЛОЖЬ, то пустые ячейки также буду учтены и отделены от других частей текста указанным в первом аргументе разделителем.
Разумеется, в качестве ячеек для склеивания можно задавать диапазоны, одиночные ячейки, текстовые строки.
Видеоверсию данной статьи смотрите на нашем канале на YouTube
Чтобы не пропустить новые уроки и постоянно повышать свое мастерство владения Excel — подписывайтесь на наш канал в Telegram Excel Everyday
Много интересного по другим офисным приложениям от Microsoft (Word, Outlook, Power Point, Visio и т.д.) — на нашем канале в Telegram Office Killer
Вопросы по Excel можно задать нашему боту обратной связи в Telegram @ExEvFeedbackBot
Вопросы по другому ПО (кроме Excel) задавайте второму боту — @KillOfBot
Сцепить много ячеек с указанным разделителем
Часто бывает ситуация, когда необходимо из трех разных столбцов сцепить данные в одну строку с разделителем. Допустим в А1 Фамилия, в В1 — Имя, в С1 — Отчество, а надо получить все вместе Фамилия Имя Отчество. Как обычно в Excel объединяют значения нескольких ячеек в одну? Правильно, при помощи функции СЦЕПИТЬ или при помощи амперсанда:
=СЦЕПИТЬ( A1 ;» «; B1 ;» «; C1 ;» «)
= A1 &» «& B1 &» «& C1 &» »
Это достаточно эффективно, если необходимо сцепить значения из трех-пяти ячеек. А если ячеек 50? Или того больше? Не очень удобно объединять их все описанными выше способами. А других встроенных функций в Excel для подобных операций не существует.
Поэтому я написал функцию пользователя, которая сцепляет данные из указанных ячеек в одну строку. Чем отличается от стандартной функции СЦЕПИТЬ()? Тем, что в качестве ячеек для сцепки указывается не каждая из ячеек по очереди, а сразу весь диапазон с возможностью указания разделителя между значениями каждой ячейки.
Option Explicit ‘————————————————————————————— ‘ Procedure : СцепитьМного ‘ http://www.excel-vba.ru ‘ Purpose : Функция сцепляет все указанные ячейки в одну с указанным разделителем. ‘ Аргументы функции: ‘ Диапазон — диапазон ячеек, значения которых необходимо объединить в строку. ‘ Разделитель — необязательный аргумент. ‘ Один или несколько символов, которые будут вставлены между каждым словом. ‘ По умолчанию пробел. ‘ БезПовторов — необязательный аргумент. ‘ Если указан как ИСТИНА или 1 — в результирующей строке будут значения без дубликатов. ‘ Для английской локализации данный параметр указывается как TRUE и FALSE соответственно. ‘————————————————————————————— Function СцепитьМного(Диапазон As Range, Optional Разделитель As String = » «, Optional БезПовторов As Boolean = False) Dim avData, lr As Long, lc As Long, sRes As String avData = Диапазон.Value If Not IsArray(avData) Then СцепитьМного = avData Exit Function End If For lc = 1 To UBound(avData, 2) For lr = 1 To UBound(avData, 1) If Len(avData(lr, lc)) Then sRes = sRes & Разделитель & avData(lr, lc) End If Next lr Next lc If Len(sRes) Then sRes = Mid(sRes, Len(Разделитель) + 1) End If If БезПовторов Then Dim oDict As Object, sTmpStr Set oDict = CreateObject(«Scripting.Dictionary») sTmpStr = Split(sRes, Разделитель) On Error Resume Next For lr = LBound(sTmpStr) To UBound(sTmpStr) oDict.Add sTmpStr(lr), sTmpStr(lr) Next lr sRes = «» sTmpStr = oDict.keys For lr = LBound(sTmpStr) To UBound(sTmpStr) sRes = sRes & IIf(sRes <> «», Разделитель, «») & sTmpStr(lr) Next lr End If СцепитьМного = sRes End Function
Чтобы применить код необходимо ознакомиться со статьей: Что такое функция пользователя(UDF)?
Синтаксис функции:
=СцепитьМного(A2:A100;», «;ИСТИНА)
Диапазон — диапазон ячеек, значения которых необходимо объединить в строку.
Разделитель — необязательный аргумент. Один или несколько символов, которые будут вставлены между каждым словом. По умолчанию пробел.
БезПовторов — необязательный аргумент. Если указан как ИСТИНА или 1 — в результирующей строке будут значения без дубликатов. Например, из значений Сидоров, Петров, Сидоров, Иванов в результат попадут только Сидоров, Петров, Иванов. Если ЛОЖЬ или 0 — будут выведены все значения. Для английской локализации данный параметр указывается как TRUE и FALSE соответственно.
Tips_Macro_CoupleCells.xls (54,0 KiB, 8 771 скачиваний)
Если необходимо объединять значения ячеек из «рваных»(несмежных) диапазонов(выделенных через Ctrl), то код нужно немного изменить:
Option Explicit ‘————————————————————————————— ‘ Procedure : СцепитьМного ‘ http://www.excel-vba.ru ‘ Purpose : Функция сцепляет все указанные ячейки в одну с указанным разделителем. Допускается указание несмежных диапазонов ‘ Аргументы функции: ‘ Диапазон — диапазон ячеек, значения которых необходимо объединить в строку. ‘ Разделитель — необязательный аргумент. ‘ Один или несколько символов, которые будут вставлены между каждым словом. ‘ По умолчанию пробел. ‘ БезПовторов — необязательный аргумент. ‘ Если указан как ИСТИНА или 1 — в результирующей строке будут значения без дубликатов. ‘ Для английской локализации данный параметр указывается как TRUE и FALSE соответственно. ‘————————————————————————————— Function СцепитьМного(диапазон As Range, Optional разделитель As String = » «, Optional БезПовторов As Boolean = False) Dim avData, lr As Long, lc As Long, sRes As String Dim ra As Range For Each ra In диапазон.Areas avData = ra.Value If Not IsArray(avData) Then ReDim avData(1 To 1, 1 To 1) avData(1, 1) = ra.Value End If For lc = 1 To UBound(avData, 2) For lr = 1 To UBound(avData, 1) If Len(avData(lr, lc)) Then sRes = sRes & разделитель & avData(lr, lc) End If Next lr Next lc Next If Len(sRes) Then sRes = Mid(sRes, Len(разделитель) + 1) End If If БезПовторов Then Dim oDict As Object, sTmpStr Set oDict = CreateObject(«Scripting.Dictionary») sTmpStr = Split(sRes, разделитель) On Error Resume Next For lr = LBound(sTmpStr) To UBound(sTmpStr) oDict.Add sTmpStr(lr), sTmpStr(lr) Next lr sRes = «» sTmpStr = oDict.Keys For lr = LBound(sTmpStr) To UBound(sTmpStr) sRes = sRes & IIf(sRes <> «», разделитель, «») & sTmpStr(lr) Next lr End If СцепитьМного = sRes End Function
Однако в таком случае слегка изменится и синтаксис — такие диапазоны обязательно надо будет записывать в скобках:
Синтаксис функции:
=СцепитьМного(( A2:A100 ; F4:F60 ; Y2:Z43 );», «;ИСТИНА)
Иначе функция просто не сработает и выдаст ошибку #ЗНАЧ! (#VALUE!)
И еще одна реализация — в ней допускается указывать не только отдельные диапазоны, но и вообще все что угодно(ячейки, отдельный текст, числа и т.п.). Единственная проблема — в этой функции иначе организован порядок аргументов: сначала указывается разделитель, а уже потом значения для сцепления. Более подробно эта функция рассмотрена в статье Что такое функция пользователя(UDF)?. Так же эта функция не убирает дубли, что впрочем, не так сложно добавить, ориентируясь на функции выше.
Function ОбъединитьВсеСРазделителем(Разделитель As String, ParamArray Значения()) As String Dim result As String, arg, x, rc As Range For Each arg In Значения Select Case TypeName(arg) Case «Range» ‘это диапазон ‘цикл по всем ячейкам For Each rc In arg.Cells If result = «» Then result = rc.Value Else result = result & Разделитель & rc.Value End If Next Case «Variant()» ‘это произвольный массив(<"а";"б";"в">) ‘цикл по всем ячейкам For Each x In arg If result = «» Then result = x Else result = result & Разделитель & x End If Next Case Else ‘это любой другой тип ‘суммируем If result = «» Then result = arg Else result = result & Разделитель & arg End If End Select Next ОбъединитьВсеСРазделителем = result End Function
Статья помогла? Поделись ссылкой с друзьями!