Логотип
Надстройка VBA-Excel
Вещь очень нужная и полезная для применения в работе.
Павел

Формула СЦЕПИТЬДИАПАЗОН

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

 

Добавить в Excel!

Установите программу

*Этого функционала нет в стандартном Excel

 Скачали:  32 471 чел.

Описание функции

Функция =СЦЕПИТЬДИАПАЗОН(ДИАПАЗОН, [РАЗДЕЛИТЕЛЬ]) имеет два аргумента:

  • - ДИАПАЗОН - диапазон ячеек, которые необходимо сцепить.
  • - [РАЗДЕЛИТЕЛЬ] - символ-разделитель, который будет вставляться между значениями ячеек. Данный аргумент является не обязательным.

Аналогичная функция появилась только в Excel 2016. Если у Вас Excel ранней версии, то надстройка полностью исправляет это упущение разработчиков.

Далее привожу множество примеров использования данной функции.

Пример 1

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

Этот пример можно сделать также с помощью стандартной функции СЦЕПИТЬ, однако для этого придется перечислить все ячейки диапазона. Если их две-три, то это не проблема, а вот если их гораздо больше, то выбор в пользу функции СЦЕПИТЬДИАПАЗОН думаю очевиден.

Пример 1 функции СЦЕПИТЬДИАПАЗОН

Пример 2

Перечислить все фамилии через запятую.

Обратите внимание, что в качестве разделителя указана запятая с пробелом (", "). Если не указать пробел, то все ячейки "сольются".

Пример 2 функции СЦЕПИТЬДИАПАЗОН

Пример 3

Можно сцепить более одного столбца. При этом сцепление ячеек происходит построчно.

Пример 3 функции СЦЕПИТЬДИАПАЗОН

Пример 4

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

Пример 4 функции СЦЕПИТЬДИАПАЗОН

Код на VBA

Код короткий, но весьма полезный!

Public Function СЦЕПИТЬДИАПАЗОН(ByRef ДИАПАЗОН As Excel.Range, Optional ByVal РАЗДЕЛИТЕЛЬ As String = "") As String
 
    Dim rCell As Range
    Dim MergeText As String
 
    For Each rCell In ДИАПАЗОН
        If rCell.Text <> "" Then
            MergeText = MergeText & РАЗДЕЛИТЕЛЬ & rCell.Text
        End If
    Next
 
    MergeText = Mid(MergeText, Len(РАЗДЕЛИТЕЛЬ) + 1)
    СЦЕПИТЬДИАПАЗОН = MergeText
End Function

 

Установка

Обращаем Ваше внимание, что функционал, описанный в данной статье, ОТСУТСТВУЕТ в Excel.

Чтобы его добавить, необходимо установить надстройку VBA-Excel. Данная программа содержит более сотни функций, которые сделают работу с Excel в разы эффективней. С ней рутинные задачи будут занимать считанные секунды. Программой уже воспользовались 32 471 чел., попробуйте и Вы!


Установите программу

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

  1. Как разделить текст в Excel на подстроки
  2. Поиск с конца строки в Excel
  3. Вернуть текст до найденного слова или символа
  4. Сравнение двух таблиц в Excel
  5. Как изменить регистр букв в Excel
  6. Как объединить ячейки в Excel без потери данных?

Комментарии:

comments powered by Disqus