13.07.2015

Excel: склеиваем текст из разных ячеек

Работа с текстом
Опубликовано: 13.07.2015 | 1484

 

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

Простое решение: использовать функцию СЦЕПИТЬ

В текстовых формулах есть стандартная функция СЦЕПИТЬ, которая может объединить текст, числа или ссылки объёмом до 255 строк из разных ячеек в  одну:

 Функция сцепить

Важно: символы-разделители должны быть обозначены как отдельные аргументы. В приведенном примере мы использовали пробелы; аналогично аргументами могут выступать запятые, точки и прочие символы, заключенные в кавычки. Разделители прописываются вручную.

Красивое решение: использовать амперсанд

Альтернативой для функции СЦЕПИТЬ может выступать амперсанд – знак «&» (в большинстве случаев расположенный на цифре «7»).

  • Амперсанд ставится на «стыках ячеек», то есть между их содержимым (по аналогии с тем, как вы используете знак «+» при суммировании чисел: 7+5+11+3).
  • Добавлять пробелы, запятые или любые другие аргументы (даже целые слова) между ячейками придется вручную. Аргументы также нужно заключать в кавычки.

 амперсанд

Кстати, в случае необходимости полные имена вы легко можете сократить до инициалов посредством функции ЛЕВСИМВ: выделяете нужную ячейку и оставляете первый символ; не забудьте указать подходящий разделитель!

 ЛЕВСИМВ

Непривычное решение: макрос MergeToOneCell

Объединить ячейки, конечно, может кнопка Объединить и поместить в центре. Но здесь возникает проблема:

Объединить ячейки

Если терять содержимое нельзя, используем специальный макрос, для чего проделываем уже знакомый путь:

  • вызываем редактор Visual Basic горячими клавишами ALT+F11;
  • создаем новый модуль (Insert → Module) и вставляем следующий макрос:

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

Теперь выделяйте ячейки, содержимое которых нужно объединить, и запускайте макрос MergeToOneCell путем нажатия горячих клавиш ALT+F8. Так вы «сольёте» содержимое разных ячеек в одну (текст будет разделен пробелами):

MergeToOneCell

Пускай работа спорится!

Автор: Webmart Group



Статьи по теме