Сложить числа в Microsoft Excel может даже новичок — достаточно кликнуть по кнопке Автосумма или ввести формулу =СУММ(). Но что делать, когда нужно объединить не цифры, а текстовые значения из разных ячеек? Ситуация усложняется: стандартная функция суммирования здесь не работает, а попытка сложить строки при помощи + часто приводит к ошибке #ЗНАЧ!.
В этой статье вы найдёте 5 проверенных способов объединения текстовых ячеек — от базовых функций СЦЕПИТЬ и CONCAT до продвинутых инструментов вроде Power Query и VBA-макросов. Мы разберём, как добавлять разделители (запятые, пробелы, тире), избегать пустых ячеек и даже объединять данные из разных листов. А ещё вы узнаете, почему иногда ТЕКСТСОЕДИНИТЬ работает медленнее, чем &, и как ускорить обработку больших таблиц.
Если вы когда-нибудь пытались вручную копировать текст из сотни ячеек, чтобы вставить его в одну — эта статья сэкономит вам часы работы. Даже если вы никогда не писали формул, наши пошаговые инструкции с картинками и примерами помогут разобраться с первой попытки.
Почему стандартная сумма не работает с текстом
В Excel текстовые значения хранятся как строки, а не как числа. Когда вы пытаетесь применить функцию =СУММ(A1:A5) к ячейкам с текстом, программа просто игнорирует их — результат будет равен 0. А если использовать оператор + для сложения строк (например, =A1+A2), Excel выдаст ошибку #ЗНАЧ!, потому что не понимает, как "складывать" слова.
Это не баг, а особенность работы программы: математические операции предназначены для чисел, а для текста нужны специальные функции объединения. Вот почему попытка суммировать текстовые ячейки "в лоб" обречена на провал.
Кстати, эта проблема актуальна не только для Excel. Аналогичное поведение наблюдается в Google Sheets, LibreOffice Calc и других табличных редакторах. Разница лишь в названиях функций: например, в Google Sheets вместо СЦЕПИТЬ используется CONCATENATE, а вместо ТЕКСТСОЕДИНИТЬ — JOIN.
⚠️ Внимание: Если в ячейке смешаны текст и числа (например,"Товар 123"), Excel всё равно воспринимает её как текстовую. Чтобы извлечь число, потребуется функцияЗНАЧЕНилиПСТР.
Способ 1: Оператор & (амперсанд) — самый простой метод
Если нужно быстро объединить две-три ячейки, оператор & — ваш лучший друг. Он работает как "склейка": берёт содержимое ячеек и соединяет их в одну строку. Пример:
=A1 & " " & B1
Эта формула объединит текст из A1 и B1, добавив между ними пробел. Если пробел не нужен, просто уберите " ".
Преимущества метода:
- ⚡ Мгновенный результат — не нужно вспоминать названия функций.
- 🔧 Гибкость: можно добавлять любые разделители (запятые, тире, скобки).
- 📊 Работает во всех версиях Excel, включая Excel 2003.
Недостатки:
- 🚫 Неудобно для большого диапазона — придётся перечислять каждую ячейку.
- 🧹 Игнорирует пустые ячейки, но оставляет лишние разделители (например,
"Товар,, 123").
Пример с разделителем-запятой:
=A1 & ", " & B1 & ", " & C1
Способ 2: Функция СЦЕПИТЬ (CONCATENATE) — классика жанра
Функция Синтаксис:
Пример:
Эта формула объединит текст из Отличия от оператора СЦЕПИТЬ (в английской версии — CONCATENATE) была основным инструментом для объединения текста до появления CONCAT в Excel 2016. Она работает так же, как оператор &, но позволяет указать до 255 аргументов (ячеек или текста).
=СЦЕПИТЬ(текст1; [текст2]; ...)=СЦЕПИТЬ(A1; " "; B1; " ("; C1; ")")A1 и B1, добавив между ними пробел, а значение из C1 обернёт в скобки.
&:
: формула выглядит аккуратнее, особенно при множестве аргументов.
⚠️ Внимание: В Excel 2016 и новееСЦЕПИТЬпомечена как устаревшая, но всё ещё работает. Вместо неё рекомендуется использоватьCONCATилиТЕКСТСОЕДИНИТЬ.
Способ 3: Функция ТЕКСТСОЕДИНИТЬ (TEXTJOIN) — разделители без головной боли
Функция ТЕКСТСОЕДИНИТЬ (в английской версии — TEXTJOIN) появилась в Excel 2019 и Office 365 и стала настоящим спасением для работы с текстовыми данными. Её ключевое преимущество — автоматическая обработка пустых ячеек и возможность указать разделитель, который будет вставляться между значениями.
Синтаксис:
=ТЕКСТСОЕДИНИТЬ(разделитель; игнорировать_пустые; текст1; [текст2]; ...)
Пример:
=ТЕКСТСОЕДИНИТЬ(", "; ИСТИНА; A1:C5)
Эта формула объединит все непустые ячейки из диапазона A1:C5, разделив их запятой и пробелом. Аргумент ИСТИНА указывает, что пустые ячейки нужно игнорировать.
Преимущества ТЕКСТСОЕДИНИТЬ:
- 🎯 Умное игнорирование пустых ячеек (не оставляет лишних разделителей).
- 📌 Поддержка диапазонов (можно указать
A1:A100вместо перечисления каждой ячейки). - ⚡ Быстрее, чем
СЦЕПИТЬ, при работе с большими массивами.
Ограничения:
- 🚫 Не работает в Excel 2016 и старше (только в Excel 2019+ и Office 365).
- 🔢 Максимум 252 аргумента (против 255 у
СЦЕПИТЬ, но это некритично).
Важно: Если вам нужно объединить текст с переносом строки, используйте символ СИМВОЛ(10) в качестве разделителя и включите перенос текста в ячейке (нажмите Alt+Enter после ввода формулы).
| Функция | Работает с диапазонами | Игнорирует пустые ячейки | Макс. аргументов | Поддержка старых версий |
|---|---|---|---|---|
& |
❌ Нет | ❌ Нет | Неограничено | ✅ Все версии |
СЦЕПИТЬ |
❌ Нет | ❌ Нет | 255 | ✅ Все версии |
CONCAT |
✅ Да | ❌ Нет | 255 | ❌ Excel 2016+ |
ТЕКСТСОЕДИНИТЬ |
✅ Да | ✅ Да | 252 | ❌ Excel 2019+ |
Способ 4: Power Query — объединение текста для больших данных
Если вам нужно объединить текст из тысяч строк или нескольких листов, стандартные функции Excel могут тормозить или вообще не справиться с задачей. Здесь на помощь приходит Power Query — инструмент для преобразования данных, встроенный в Excel 2016+ и Office 365.
Алгоритм действий:
- Выделите исходные данные и перейдите на вкладку
Данные → Из таблицы/диапазона(илиGet & Transform → From Table/Rangeв английской версии). - В открывшемся редакторе Power Query выберите столбец с текстом, который нужно объединить.
- Нажмите
Преобразовать → Объединить столбцы(илиTransform → Merge Columns). - Укажите разделитель (например, запятую или пробел) и подтвердите изменения.
- Нажмите
Закрыть и загрузить, чтобы вернуть данные в Excel.
Преимущества Power Query:
- 🚀 Обработка миллионов строк без замедления.
- 🔄 Автоматическое обновление при изменении исходных данных.
- 📂 Объединение данных из разных источников (листы, файлы, базы данных).
Недостатки:
- 📚 Сложнее в освоении для новичков.
- 🔌 Требует Excel 2016+ (в старых версиях нужно устанавливать надстройку).
Убедитесь, что данные оформлены как таблица (Ctrl+T)
Проверьте отсутствие пустых строк в диапазоне
Выберите правильный разделитель (запятая, точка с запятой и т.д.)
Сохраните файл перед началом работы (Power Query может зависнуть)
Проверьте результат на небольшом фрагменте данных-->
Способ 5: VBA-макрос для объединения текста по условию
Если вам нужно объединить текст с дополнительными условиями (например, только ячейки с определённым цветом или значением), стандартные функции не помогут. Здесь пригодится VBA-макрос. Например, этот код объединит все непустые ячейки в выделенном диапазоне, разделив их запятой:
Dim rng As Range Dim cell As Range Dim result As String Dim delimiter As String ' Выбираем диапазон вручную Set rng = Application.Selection delimiter = ", " ' Обходим все ячейки в диапазоне For Each cell In rng If cell.Value <> "" Then result = result & delimiter & cell.Value End If Next cell ' Убираем лишний разделитель в начале If Len(result) > 0 Then result = Mid(result, Len(delimiter) + 1) End If ' Выводим результат в новую ячейку rng(1, 1).Offset(0, rng.Columns.Count + 1).Value = result End SubSub ОбъединитьТекст()
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите диапазон с текстом и запустите макрос (
F5). - Результат появится справа от выделенного диапазона.
Преимущества VBA:
Чтобы объединить только ячейки определённого цвета, модифицируйте макрос так: result = result & delimiter & cell.Value End If Здесь
⚠️ Внимание:
Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе код не будет работать. Также убедитесь, что в настройках безопасности разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов).
Как объединить текст с учётом цвета ячейки?
If cell.Value <> "" And cell.Interior.Color = RGB(255, 0, 0) Then
RGB(255, 0, 0) — красный цвет. Замените его на нужный с помощью инструмента "Пипетка" в Excel (наведите курсор на ячейку и посмотрите код цвета в статусной строке).
Частые ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при объединении текста. Вот топ-5 ошибок и способы их решения:
1. Ошибка #ЗНАЧ! при использовании & или СЦЕПИТЬ
Причина: одна из ячеек содержит ошибку (например, #ДЕЛ/0! или #Н/Д).
Решение: используйте функцию ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(A1; "") & ЕСЛИОШИБКА(B1; "")
2. Лишние пробелы или разделители
Причина: пустые ячейки в диапазоне.
Решение: замените СЦЕПИТЬ на ТЕКСТСОЕДИНИТЬ с параметром ИСТИНА или используйте ЕСЛИ для проверки:
=ЕСЛИ(A1<>""; A1 & ", "; "") & ЕСЛИ(B1<>""; B1; "")
3. Текст объединяется в одну строку без переносов
Причина: не включён перенос текста в ячейке.
Решение: выделите ячейку с результатом, нажмите Ctrl+1, перейдите на вкладку Выравнивание и поставьте галочку Перенос по словам. Или используйте СИМВОЛ(10) как разделитель.
4. Медленная работа формул на больших диапазонах
Причина: функции СЦЕПИТЬ и CONCAT пересчитываются при каждом изменении листа.
Решение: замените формулы на значения (Копировать → Специальная вставка → Значения) или используйте Power Query.
5. Символы типа # или ? вместо текста
Причина: ячейка с результатом имеет текстовый формат, но содержит слишком длинную строку.
Решение: измените формат ячейки на Общий или расширьте столбец.
FAQ: Ответы на популярные вопросы
Можно ли объединить текст с сохранением форматирования (жирный, курсив)?
Нет, стандартные функции Excel объединяют только значения, но не их форматирование. Чтобы сохранить оформление, придётся:
- Скопировать отформатированные ячейки (
Ctrl+C). - Вставить их как
Картинку(Главная → Вставка → Специальная вставка → Картинка). - Обрезать лишнее в графическом редакторе.
Альтернатива: использовать VBA для создания форматированного текста в TextBox.
Как объединить текст с указанием источника (например, "Иванов [Лист1]")?
Используйте функцию АДРЕС или укажите имя листа вручную:
=A1 & " [" & ТЕКСТ(АДРЕС(СТРОКА(A1); СТОЛБЕЦ(A1)); "0") & "]"
Для имени листа:
=A1 & " [Лист1]"
Если нужно динамически подставлять имя листа, потребуется VBA.
Почему после объединения даты отображаются как числа (например, 44197 вместо 01.01.2021)?
Потому что Excel хранит даты как числа (количество дней с 1900 года). Чтобы исправить, преобразуйте дату в текст с нужным форматом:
=ТЕКСТ(A1; "дд.мм.гггг") & " " & B1
Или измените формат ячейки с результатом на Дата.
Как объединить текст из ячеек, если их количество заранее неизвестно?
Используйте ТЕКСТСОЕДИНИТЬ с динамическим диапазоном:
=ТЕКСТСОЕДИНИТЬ(", "; ИСТИНА; A1:INDEX(A:A; СЧЁТЗ(A:A)))
Эта формула автоматически определит последнюю непустую ячейку в столбце A и объединит все данные до неё.
Можно ли объединить текст с учётом регистра (например, "Иванов" + "иванов" = "Иванов Иванов")?
Да, но нужно привести текст к одному регистру. Например, чтобы первое слово было с заглавной буквы, а остальные — со строчной:
=ПРОПНАЧ(A1) & " " & СТРОЧН(B1)
Функции для работы с регистром:
ПРОПНАЧ— Первая Буква Заглавная.СТРОЧН— весь текст строчными.ВЕРХН— ВСЁ ЗАГЛАВНЫМИ.