Excel функция сцепить для диапазона

Skip to content

СЦЕПИТЬ в Excel: как объединять текстовые строки, ячейки и столбцы

В этом руководстве вы узнаете о различных способах объединения текстовых значений, ячеек, диапазонов, столбцов и строк в Excel с помощью функций СЦЕПИТЬ, СЦЕП и оператора «&» .

В ваших файлах Excel данные не всегда структурированы в соответствии с вашими потребностями. Часто вы можете захотеть разбить содержимое одной ячейки на отдельные ячейки или сделать наоборот — сцепить данные из двух или более столбцов в один столбец. Типичными примерами, требующими таких действий в Excel, являются объединение частей имен и адресов, сцепка текста с числом, рассчитанным при помощи формулы, отображение даты и времени в нужном формате. И это лишь некоторые из них.

  • Что такое «сцепить» в Excel?
  • Функция СЦЕПИТЬ
  • Функция СЦЕП
  • 6 вещей, о которых нужно помнить при объединении данных
  • Объединение значений нескольких ячеек
  • Объединение текстовой строки и значения ячейки
  • Как сцепить текст и значение, рассчитанное по формуле
  • Оператор «&» для объединения строк в Excel
  • Как сцепить ячейки с пробелами, запятой или другими символами
  • Как построчно объединить столбцы в Excel
  • Как сцепить диапазон ячеек в Excel
  • Как сцепить текст, число и дату в различных форматах
  • Надстройка «Объединить ячейки» — способ сцепить ячейки в Excel без использования формул

В этой статье мы собираемся изучить различные методы как сцепить ячейки в Excel, чтобы вы могли выбрать тот из них, который лучше всего подходит для ваших рабочих таблиц.

Что такое «сцепить» в Excel?

По сути, существует два способа объединения данных в ячейках электронных таблиц Excel:

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

Когда вы объединяете ячейки, вы «физически» объединяете две или более ячеек в одну. В результате у вас есть одна большая ячейка, которая отображается в нескольких строках и/или столбцах на вашем листе.

Когда вы хотите сцепить данные из ячеек в Excel, вы объединяете только их содержимое. Другими словами, «сцепить» в Excel — это объединение двух или более значений вместе. 

Этот метод часто используется для объединения нескольких фрагментов текста, находящихся в разных ячейках (технически они называются текстовыми строками или просто строками), или для вставки вычисляемого по формуле значения в середину некоторого текста.

На следующем скриншоте показана разница между этими двумя методами:

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

Функция СЦЕПИТЬ

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

Синтаксис её следующий:

СЦЕПИТЬ(текст1; [текст2]; …)

Где текст — это текстовая строка, ссылка на ячейку или значение, определяемое формулой.

Функция СЦЕПИТЬ поддерживается во всех версиях Excel для Microsoft 365, Excel 2019 — Excel 2007.

Примечание. В Excel 365 — Excel 2019 также доступна функция СЦЕП (CONCAT на английском), которая является современным преемником СЦЕПИТЬ с точно таким же синтаксисом. Функция СЦЕПИТЬ сохранена для обратной совместимости, и Microsoft не обещает, что она будет поддерживаться в будущих версиях Excel.

Функция СЦЕП

Функция СЦЕП (CONCAT в английской версии)  в Excel используется для объединения данных из нескольких ячеек или диапазонов в одну ячейку.

Она относится к категории текстовых функций и доступна в Excel для Microsoft 365, Excel 2021, Excel 2019 и Excel для Интернета.

Синтаксис её простой:

СЦЕП(текст1; [текст2]; …)

Где текст1 (обязательный аргумент) и текст2 (необязательный) — данные, которые нужно соединить.

Аргументы могут быть предоставлены в виде текстовых значений, ссылок на ячейки или диапазоны. Принимается не более 255 текстовых аргументов. Данные объединяются в порядке их появления в формуле.

Обратите внимание, что текст, передаваемый непосредственно в формулу, всегда должен быть заключен в двойные кавычки, например:

=СЦЕП(«john»; «@gmail.com»)

6 вещей, о которых нужно помнить при объединении данных

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

  1. Для работы функций СЦЕПИТЬ и СЦЕП требуется хотя бы один текстовый аргумент. Если какой-либо из аргументов недействителен (например, представлен другой функцией, которая выдает ошибку), то произойдет ошибка.
  2. Результатом этих функций всегда является текстовая строка, даже если вы объединяете числа.
  3. Если результирующая строка превышает 32 767 символов, возникает ошибка #ЗНАЧ! .
  4. В СЦЕПИТЬ и СЦЕП нет предопределенного параметра для разделителя между объединяемыми значениями. Чтобы разделить объединенные фрагменты текста, поместите разделители между ссылками на ячейки, например:

=СЦЕП(A1;” “;A2;”-“;A3)

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

=СЦЕПИТЬ(A1; A2; A3) вместо =СЦЕПИТЬ(A1:A3).

Ниже вы найдете несколько примеров использования функций объединения данных в Excel.

Объединение значений нескольких ячеек

Простейшая формула для объединения значений ячеек A1 и B1 выглядит следующим образом:

=СЦЕПИТЬ(A1; B1)

=СЦЕП(A1; B1)

Обратите внимание, что значения будут соединяться вместе без какого-либо разделителя, как в строке 2 на скриншоте ниже.

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

=СЦЕПИТЬ(A3;B3)

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

Объединение текстовой строки и значения ячейки

Нет никаких причин, по которым можно ограничиться только объединением значений ячеек. Вы также можете соединять различные текстовые строки, чтобы сделать результат более значимым. Например:

=СЦЕПИТЬ(A9;B9;» завершено»)

Приведенная выше формула информирует пользователя о том, что определенное задание завершено, как в строке 9 на скриншоте выше. Обратите внимание, что мы добавляем пробел перед словом «завершено», чтобы разделить объединенные текстовые строки.

Естественно, вы также можете добавить текстовую строку в начале или в середине формулы:

=СЦЕПИТЬ(«Смотри «;A10; » «; B10)

Пробел («») добавляется между объединенными значениями, чтобы результат отображался как «Задание 1», а не «Задание1».

Объединение текста и значения, рассчитанного по формуле

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

Например, вы можете использовать следующую формулу для возврата текущей даты:

=СЦЕПИТЬ(«Сегодня «; ТЕКСТ(СЕГОДНЯ(); «dd-mmm-yy»))

Совет. Если вы хотите удалить исходные данные, не затрагивая результирующие текстовые строки, используйте «Специальная вставка — только значения», чтобы преобразовать формулы в их значения. 

Оператор «&» для объединения строк в Excel

В Microsoft Excel оператор & — это еще один способ объединения ячеек. Этот метод очень удобен во многих случаях, потому что ввод знака амперсанда (&) намного быстрее, чем ввод слова «СЦЕПИТЬ» :)

Вы можете использовать «&» в Excel для объединения различных текстовых строк, значений ячеек и результатов, возвращаемых другими функциями.

Примеры формул Excel «&»

Чтобы увидеть оператор объединения в действии, давайте перепишем формулы, рассмотренные чуть выше:

Объедините значения в A1 и B1:

=A1&B1

Объедините значения в A1 и B1, разделенные пробелом:

=A1&» «&B1

Объедините значения в A1, B1 и текстовую строку:

=A1 & B1 & » завершено»

Объедините строку и результат функции ТЕКСТ / СЕГОДНЯ:

=»Сегодня » & ТЕКСТ(СЕГОДНЯ(), «dd-mmm-yy»)

Функция СЦЕПИТЬ и оператор «&» возвращают совершенно идентичные результаты.

Оператор Excel «&» против функции СЦЕПИТЬ

Многие пользователи задаются вопросом, какой способ объединения строк в Excel более эффективен — функция СЦЕПИТЬ или оператор «&».

Единственным существенным различием между оператором СЦЕПИТЬ и оператором «&» является ограничение в 255 строк функции СЦЕПИТЬ в Excel и отсутствие таких ограничений при использовании амперсанда. Кроме этого, нет никакой разницы между этими двумя методами слияния, а также нет отличий в скорости между формулами СЦЕПИТЬ и «&».

А так как 255 — это действительно большое число, и в реальных задачах вряд ли кому-то когда-нибудь понадобится объединять столько строк, то разница между ними сводится к удобству и простоте использования. Некоторым пользователям формулу СЦЕПИТЬ легче читать, но лично я предпочитаю использовать метод «&». 

Итак, просто придерживайтесь той техники, с которой вы чувствуете себя более комфортно.

Как сцепить ячейки с пробелами, запятой или другими символами

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

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

Как сцепить две ячейки с пробелом:

=СЦЕПИТЬ(A1; » «; B1)

или

=A1 & » » & B1

Объединение двух ячеек с запятой:

=СЦЕПИТЬ(A1; «, «; B1)

или

=A1 & «, » & B1

Объединение двух ячеек с дефисом:

=СЦЕПИТЬ(A1; «-«; B1)

или

=A1 & «-» & B1

На этом скриншоте показано, как могут выглядеть результаты:

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

Проблема в том, что вы не можете просто ввести в формулу перенос строки, как обычный символ, и поэтому необходима специальная функция СИМВОЛ для подачи соответствующего ASCII-кода в формулу:

  • В Windows используйте СИМВОЛ(10), где 10 — это код ASCII для перевода строки.
  • В системе Mac используйте СИМВОЛ(13), где 13 — код ASCII для возврата каретки.

В этом примере у нас есть фрагменты адреса в столбцах от A до F, и мы объединяем их в столбце G с помощью оператора «&». Сцепленные значения разделяются запятой («,»), пробелом (» «) и разрывом строки СИМВОЛ(10):

=A2&» «&B2&СИМВОЛ(10)&C2&СИМВОЛ(10)&D2&», «&E2&» «&F2

Примечание. При использовании разрывов строк для разделения значений необходимо включить параметр форматирования «Перенос текста», чтобы результат отображался правильно. Для этого нажмите Ctrl + 1, чтобы открыть диалоговое окно «Формат ячейки», перейдите на вкладку «Выравнивание» и установите флажок «Переносить текст».

Таким же образом вы можете разделить объединенные данные другими символами, такими как:

  • Двойные кавычки («») — СИМВОЛ(34)
  • Косая черта (/) — СИМВОЛ(47)
  • Звездочка (*) — СИМВОЛ(42)
  • Полный список кодов ASCII доступен здесь .

Тем не менее, более простой способ включить печатные символы в формулу — просто вставить их в двойных кавычках, как мы сделали в предыдущем примере.

В любом случае, все приведенные ниже формулы дают одинаковые результаты:

=A1 & СИМВОЛ(47) & B1

=A1 & «/» & B1

=СЦЕПИТЬ(A1; СИМВОЛ(47); B1)

=СЦЕПИТЬ(A1; «/»; B1)

Как построчно объединить столбцы в Excel

Чтобы объединить два или более столбца в Excel, вы просто вводите обычную формулу объединения в первую ячейку, а затем копируете ее в другие ячейки, перетаскивая маркер заполнения (маленький квадрат, который появляется в правом нижнем углу поля).

Например, чтобы объединить два столбца (столбец A и B), разделяя значения пробелом, введите следующую формулу в ячейку C2, а затем скопируйте ее в другие ячейки. Когда вы перетаскиваете маркер заполнения, чтобы скопировать формулу, указатель мыши принимает форму креста, как показано ниже:

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

Обратите внимание, что Microsoft Excel определяет, насколько далеко копировать ячейки после двойного щелчка дескриптора заполнения, на основе ячеек, на которые ссылается ваша формула. Если в вашей таблице окажутся пустые ячейки, скажем, если бы в этом примере ячейки A6 и B6 были пустыми, формула будет скопирована только до строки 5. В этом случае вам нужно будет вручную перетащить маркер заполнения вниз.

Как сцепить диапазон ячеек в Excel

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

Чтобы объединить все значения из диапазона ячеек, скажем, от A1 до A4, вам понадобится одна из следующих формул:

=СЦЕПИТЬ(A1; A2; A3; A4)
или

=A1 & A2 & A3 & A4

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

1. Нажмите CTRL, чтобы выбрать несколько ячеек для объединения.

Чтобы быстро выбрать несколько ячеек, вы можете нажать клавишу CTRL и кликнуть мышкой каждую ячейку, которую хотите включить в формулу СЦЕПИТЬ. Вот подробные шаги:

  1. Выберите ячейку, в которую вы хотите ввести формулу.
  2. Введите =СЦЕПИТЬ( в этой ячейке или в строке формул.
  3. Нажмите и удерживайте Ctrl и кликните последовательно на каждую ячейку, которую вы хотите объединить.
  4. Отпустите Ctrl, введите закрывающую скобку в строке формул и нажмите ENTER.

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

2. Используйте функцию ТРАНСП, чтобы получить диапазон

Когда вам нужно объединить большой диапазон, состоящий из десятков или сотен ячеек, предыдущий метод недостаточно быстр и удобен, поскольку требует клика по каждой ячейке. В этом случае лучше использовать функцию ТРАНСП, чтобы взять диапазон ячеек, а затем заменить его значениями отдельных ячеек одним махом.

  1. В ячейку, куда вы хотите записать результат объединения, введите формулу ТРАНСП, например:

=ТРАНСП(A1:A10)

  • Установите курсор в строку формул и нажмите F9, чтобы заменить это выражение вычисленными значениями. В результате у вас будет массив значений для объединения.
  • Удалите фигурные скобки, окружающие значения массива.

  • Введите =СЦЕПИТЬ( перед первым значением, затем введите закрывающую скобку после последнего значения и нажмите Enter.

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

3. Сцепить два или более столбца

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

Чтобы объединить столбцы построчно, вам нужно сделать следующее:

  • Напишите формулу СЦЕП для объединения ячеек в первой строке.
  • Скопируйте формулу на столько строк, сколько необходимо.

Например, чтобы объединить текст в столбцах A, B, C и D в каждой строке, введите эту формулу в E2:

=СЦЕП(A2:D2)

Затем перетащите маркер заполнения вниз, чтобы скопировать формулу в строки ниже. Если в исходных данных нет пропусков, можно просто дважды щелкнуть маркер заполнения. 

Из-за использования относительных ссылок формула корректируется соответствующим образом для каждой строки. То есть в E3 ссылка изменится на A3:В3, и так далее.

Чтобы объединить значения из всех ячеек в определенном столбце, укажите ссылку на столбец в формуле СЦЕП. Например:

=СЦЕП(A:A)

Поскольку функция пропускает пустые ячейки, в результирующей строке не будет пробелов:

Чтобы объединить все ячейки в столбце, кроме заголовка, используйте ссылку на диапазон, например A2:A1048576, где A2 — первая ячейка с данными, а A1048576 — последняя ячейка в столбце:

=СЦЕП(A2:A1048576)

Примечание. При объединении всех ячеек в столбце имейте в виду, что Excel имеет ограничение на общее количество символов, которое может содержать ячейка — до 32 767. Если результирующая строка превышает этот предел, ваша формула выдаст ошибку #ЗНАЧ!.

4. Сцепить диапазон ячеек

Объединение диапазона ячеек в Excel раньше было проблемой. Теперь вы можете просто поместить ссылку на диапазон в функцию СЦЕП:

=СЦЕП(A2:C3)

В результате все значения из указанного диапазона объединяются слева направо и затем вниз до следующей строки:

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

=СЦЕП(A2:C3; A5:C6)

Как видно из этих примеров, использование функции СЦЕП намного предпочтительнее и проще.

Как сцепить текст, число и дату в различных форматах

Когда вы объединяете текстовую строку с числом или датой, вы можете захотеть отформатировать результат по-разному в зависимости от вашего набора данных и решаемых задач. Для этого используйте функцию ТЕКСТ в формуле объединения Excel.

Функция ТЕКСТ([значение], [формат_текста]) имеет два аргумента:

В первом аргументе ( [значение] ) вы указываете число или дату, которые нужно преобразовать в текст, или вставляете ссылку на ячейку, содержащую числовое значение.

Во втором аргументе ( [формат_текста] ) вы вводите желаемый формат, используя коды, которые может понять функция ТЕКСТ.

Мы уже рассматривали ранее, что если нужно сцепить дату и текст, то приходится использовать функцию ТЕКСТ для отображения даты в нужном формате. Например:

=СЦЕПИТЬ(«Сегодня «; ТЕКСТ(СЕГОДНЯ(); «dd-mmm-yy»))

или

=»Сегодня «& ТЕКСТ(СЕГОДНЯ(); «dd-mmm-yy»)

Когда вы хотите сцепить текст и дату, то важно помнить, что дата хранится в Excel в виде числа. Поэтому если вы просто соедините содержимое ячеек, результат вас вряд ли порадует. Необходимо преобразовать дату в текст в нужном вам формате, и только после этого сцепить ее с каким- то другим текстом.

Вы это можете видеть на скриншоте ниже.

Ниже приведены еще несколько примеров формул, объединяющих текстовое значение и число :

=A2 & » » & ТЕКСТ(B2; «$# ##0,0»)  – отображать число с одним знаком после запятой и знаком $.

=A2 & » » & ТЕКСТ(B2; «₽# ##0,0») – отображает число и  знак рубля ₽.

=A2&» «&ТЕКСТ(B2;»#__?/10»)  – отображать число в виде дроби.

СЦЕП против СЦЕПИТЬ в Excel

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

С технической точки зрения существует два основных различия между СЦЕП и СЦЕПИТЬ в Excel:

  1. Прежде всего, функция СЦЕП преодолевает самое большое ограничение своего предшественника — невозможность обработки диапазона ячеек. В отличие от функции СЦЕПИТЬ, она может объединять все значения в диапазоне, избавляя вас от необходимости указывать каждую ссылку на ячейку по отдельности.
  2. Функция СЦЕП доступна только в Excel 365, Excel 2021, Excel 2019 (Windows и Mac) и Excel Online. Функция СЦЕПИТЬ поддерживается во всех версиях Excel с 2007 по 365.

Во всем остальном эти две функции по существу одинаковы.

Надстройка «Объединить ячейки» — способ сцепить ячейки в Excel без использования формул

С надстройкой «Объединить ячейки», включенной в Ultimate Suite for Excel , вы можете эффективно выполнять следующие задачи:

  • Объединить несколько ячеек в одну без потери данных.
  • Объединить значения нескольких ячеек в одну ячейку и разделить их любым разделителем по вашему выбору.

Инструмент «Объединить ячейки» работает со всеми версиями Excel и может объединять все типы данных, включая текстовые строки, числа, даты и специальные символы. Два его ключевых преимущества — простота и скорость — любое объединение делается в пару кликов. А теперь позвольте мне показать вам это в действии.

Чтобы сцепить содержимое нескольких ячеек, вы выбираете диапазон для объединения и настраиваете следующие параметры:

  • Ячейки в одну под » Как сцепить «;
  • Выберите нужный разделитель в разделе « Разделить значения с помощью », в данном примере это точка с запятой и пробел;
  • Выберите, где вы хотите разместить результат;
  • И самое главное – снимите флажок «Объединить все области в выделенном». Именно этот параметр определяет, объединяются ли сами ячейки или только сцепляются их значения.

Процесс вы видите на скриншоте ниже.

Вот сам результат:

Чтобы объединить два или более столбца, вы настраиваете параметры «Ячейки слияния» аналогичным образом, но выбираете «Столбцы» в разделе « Что объединять»:

Чтобы проверить, как надстройка Merge Cells будет работать с вашими наборами данных, вы можете использовать эту ссылку для загрузки полнофункциональной пробной версии Ultimate Suite для Excel.

Возможно, эти статьи вам будут интересны:

Как быстро посчитать количество слов в Excel В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в…
Как быстро извлечь число из текста в Excel В этом кратком руководстве показано, как можно быстро извлекать число из различных текстовых выражений в Excel с помощью формул или специального инструмента «Извлечь». Проблема выделения числа из текста возникает достаточно…
Функция ПРАВСИМВ в Excel — примеры и советы. В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части…
Функция ЛЕВСИМВ в Excel. Примеры использования и советы. В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди…
5 примеров с функцией ДЛСТР в Excel. Вы ищете формулу Excel для подсчета символов в ячейке? Если да, то вы, безусловно, попали на нужную страницу. В этом коротком руководстве вы узнаете, как использовать функцию ДЛСТР (LEN в английской версии)…
Как быстро сосчитать количество символов в ячейке Excel В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках. В нашем предыдущем…
Объединение ячеек в Excel без потери данных В руководстве описываются различные методы быстрого объединения двух или нескольких ячеек в Excel без потери данных. В таблицах Эксель вам часто может потребоваться соединить две или более ячейки в одну…
Как преобразовать текст в число в Excel — 10 способов. В этом  руководстве показано множество различных способов преобразования текста в число в Excel: опция проверки ошибок в числах, формулы, математические операции, специальная вставка и многое другое. Иногда значения в ваших…

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Еще…Меньше

Функция CONCAT объединяет текст из нескольких диапазонов и (или) строк, но не предоставляет аргументы delimiter или IgnoreEmpty. 

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

Синтаксис

СЦЕПИТЬ(текст1; [текст2]; …)

Аргумент

Описание

text1

(обязательно)

Элемент текста, который нужно присоединить. Строка или массив строк, например диапазон ячеек.

[text2, …]

(необязательно)

Дополнительные текстовые элементы для объединения. Для текстовых элементов можно указать до 253 аргументов. Каждый из них может быть строкой или массивом строк, например диапазоном ячеек.

Например, выражение =СЦЕП(«Не»;» «;»слышны»;» «;»в»;» «;»саду»;» «;»даже»;» «;»шорохи.») вернет строку Не слышны в саду даже шорохи.

Совет: Чтобы включить разделители (например, интервалы или амперсанды (&)) между текстом, который требуется объединить, и удалить пустые аргументы, которые не должны отображаться в объединенном текстовом результате, можно использовать функцию TEXTJOIN.

Примечания

  • Если объединенная строка содержит свыше 32767 символов (ограничение для ячейки), функция СЦЕП вернет ошибку #ЗНАЧ!.

Примеры

Скопируйте данные примеров из приведенных ниже таблиц и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Пример 1

=СЦЕПИТЬ(B:B; C:C)

A’s

B’s

a1

b1

a2

b2

a4

b4

a5

b5

a6

b6

a7

b7

Так как эта функция допускает ссылки на целый столбец и строку, она возвращает следующий результат: A’sa1a2a4a5a6a7B’sb1b2b4b5b6b7

Пример 2

=СЦЕПИТЬ(B2:C8)

A’s

B’s

a1

b1

a2

b2

a4

b4

a5

b5

a6

b6

a7

b7

Результат: a1b1a2b2a4b4a5b5a6b6a7b7

Пример 3

Данные

Имя

Фамилия

вида

Виталий

Токарев

речная форель

Fourth

Pine

32

Формула

Описание

Результат

=СЦЕПИТЬ(«Популяция рек для «;A2;» «;A3;» составляет «;A4;» на километр.»)

Создает предложение, объединяя данные в столбце А с остальным текстом.

Популяция рек для вида речная форель составляет 32 на километр.

=СЦЕПИТЬ(B2;» «; C2)

Объединяет строку в ячейке В2, пробел и значение в ячейке С2.

Виталий Токарев

=СЦЕПИТЬ(C2; «, «; B2)

Объединяет текст в ячейке C2, строку, состоящую из запятой и пробела, и значение в ячейке B2.

Токарев, Виталий

=СЦЕПИТЬ(B3;» & «; C3)

Объединяет строку в ячейке B3, строку, состоящую из пробела, амперсанда и еще одного пробела, и значение в ячейке C3.

Fourth & Pine

=B3 & » & » & C3

Объединяет те же элементы, что и в предыдущем примере, но с помощью оператора & (амперсанд) вместо функции СЦЕПИТЬ.

Fourth & Pine

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функция СЦЕПИТЬ

Функция ОБЪЕДИНИТЬ

Общие сведения о формулах в Excel

Рекомендации, позволяющие избежать появления неработающих формул

Поиск ошибок в формулах

Сочетания клавиш и горячие клавиши в Excel

Текстовые функции (справочник)

Функции Excel (по алфавиту)

Функции Excel (по категориям)

Нужна дополнительная помощь?

Хитрости »

5 Август 2013              151169 просмотров


Сцепить много ячеек с указанным разделителем

Часто бывает ситуация, когда необходимо из трех разных столбцов сцепить данные в одну строку с разделителем. Допустим в А1 Фамилия, в В1Имя, в С1Отчество, а надо получить все вместе Фамилия Имя Отчество. Как обычно в Excel объединяют значения нескольких ячеек в одну? Правильно, при помощи функции СЦЕПИТЬ или при помощи амперсанда:
=СЦЕПИТЬ(A1;» «;B1;» «;C1;» «)
=A1&» «&B1&» «&C1&» «
Это достаточно эффективно, если необходимо сцепить значения из трех-пяти ячеек. А если ячеек 50? Или того больше? Не очень удобно объединять их все описанными выше способами. А других встроенных функций в Excel для подобных операций не существует. С момента написания статьи Microsoft порадовал нас новыми функциями и теперь в составе функций есть функция ОБЪЕДИНИТЬ(TEXTJOIN), которая способна решить задачу без лишних телодвижений.
=ОБЪЕДИНИТЬ(«, «;ИСТИНА;A2:A100)
=TEXTJOIN(«, «,TRUE,A2:A100)

    Разделитель(«, «) — разделитель, с которым объединять текст из указанных ячеек
    Пропускать пустые(ИСТИНА) — указывает пропускать ли пустые ячейки. Т.е. если указано ИСТИНА или 1(а так же если аргумент вовсе не указан) — пустые ячейки будут пропускаться и не попадут в общую строку сцепки. Если указано ЛОЖЬ — сцепляться будут все ячейки, независимо от их содержимого. Например, если указать три ячейки A1:A3 в которых А2 пустая, то при указании ИСТИНА результат будет таким: «один, два». Если указать ЛОЖЬ, то пустая ячейка тоже попадет в сцепку: «один, , два».
    Так же этот аргумент удобен, если неизвестен заранее размер диапазона сцепления. Можно указать ячейки чуть с запасом(A1:A300) и тогда сцепляться будут только ячейки заполненного диапазона.
    Текст(A2:A100) — указывается непосредственно диапазон либо текст для сцепления. Этот аргумент расширяемый — т.е. можно указать не один диапазон, а несколько или просто текст: =ОБЪЕДИНИТЬ(«, «;ИСТИНА;A2:A100;B2:B70;»текст»)

Правда и здесь не все так радужно: эта функция доступна только пользователям версий 2019 и выше, а так же офиса 365.


Поэтому я написал функцию пользователя, которая сцепляет данные из указанных ячеек в одну строку и использовать её можно в любой версии офиса. Чем отличается от стандартной функции СЦЕПИТЬ()? Тем, что в качестве ячеек для сцепки указывается не каждая из ячеек по очереди, а сразу весь диапазон с возможностью указания разделителя между значениями каждой ячейки. Так же, в функции сразу заложен алгоритм пропуска пустых ячеек и возможность сцеплять исключительно уникальные значения — т.е. в результате будут сцепляться только те ячейки, значения которых ранее еще не были добавлены в сцепку.

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 oDict As Object, sTmpStr
    Set oDict = CreateObject("Scripting.Dictionary")
    oDict.comparemode = 1
 
    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)
                If БезПовторов Then
                    If Not oDict.exists(avData(lr, lc)) Then
                        oDict.Add avData(lr, lc), 0&
                    End If
                End If
            End If
        Next lr
    Next lc
    If Len(sRes) Then
        sRes = Mid(sRes, Len(Разделитель) + 1)
    End If
 
    If БезПовторов Then
        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)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций(Shift+F3), отыскав её в категории Определенные пользователем (User Defined Functions).

Синтаксис функции:
=СцепитьМного(A2:A100;», «;ИСТИНА)

Диапазон — диапазон ячеек, значения которых необходимо объединить в строку.
Разделитель — необязательный аргумент. Один или несколько символов, которые будут вставлены между каждым словом. По умолчанию пробел.
БезПовторов — необязательный аргумент. Если указан как ИСТИНА или 1 — в результирующей строке будут значения без дубликатов. Например, из значений Сидоров, Петров, Сидоров, Иванов в результат попадут только Сидоров, Петров, Иванов. Если ЛОЖЬ или 0 — будут выведены все значения. Для английской локализации данный параметр указывается как TRUE и FALSE соответственно.

Скачать пример

  СцепитьМного.xls (52,5 KiB, 11 994 скачиваний)


Если необходимо объединять значения ячеек из «рваных»(несмежных) диапазонов(выделенных через 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

Также см.:
Сцепить_МН
Как сцепить несколько значений в одну ячейку по критерию? СцепитьЕсли
Что такое функция пользователя(UDF)?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Содержание

  • Применение оператора СЦЕПИТЬ
    • Способ 1: объединение данных в ячейках
    • Способ 2: применение функции с пробелом
    • Способ 3: добавление пробела через окно аргументов
    • Способ 4: объединение колонок
    • Способ 5: добавление дополнительных символов
  • Вопросы и ответы

Функция СЦЕПИТЬ в Microsoft Excel

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

Применение оператора СЦЕПИТЬ

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

Синтаксис этого оператора выглядит следующим образом:

=СЦЕПИТЬ(текст1;текст2;…)

В качестве аргументов могут выступать, как текст, так и ссылки на ячейки, которые его содержат. Количество аргументов может варьироваться от 1 до 255 включительно.

Способ 1: объединение данных в ячейках

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

  1. Выделяем ячейку, в которой планируем разместить объединенные данные. Кликаем на кнопку «Вставить функцию». Она имеет вид пиктограммы и размещена слева от строки формул.
  2. Переход в Мастер функций в Microsoft Excel

  3. Открывается Мастер функций. В категории «Текстовые» или «Полный алфавитный перечень» ищем оператор «СЦЕПИТЬ». Выделяем это наименование и жмем на кнопку «OK».
  4. Мастер функций в Microsoft Excel

  5. Запускается окно аргументов функции. В качестве аргументов могут выступать ссылки на ячейки, содержащие данные или отдельный текст. Если в задачу входит объединение содержимого ячеек, то в данном случае мы будем работать только со ссылками.

    Устанавливаем курсор в первое поле окна. Затем выделяем ссылку на листе, в которой содержатся данные, нужные для объединения. После того, как координаты отобразились в окошке, аналогичным образом поступаем со вторым полем. Соответственно выделяем другую ячейку. Подобную операцию проделываем, пока координаты всех ячеек, которые нужно объединить, не будут внесены в окно аргументов функции. После этого жмем на кнопку «OK».

  6. Аргументы функции СЦЕПИТЬ в программе Microsoft Excel

  7. Как видим, содержимое выбранных областей отразилось в одной предварительно указанной ячейке. Но у данного способа имеется существенный недостаток. При его использовании происходит так называемая «склейка без шва». То есть, между словами нет пробела и они склеены в единый массив. При этом вручную добавить пробел не получится, а только через редактирование формулы.

Результат функции СЦЕПИТЬ в Microsoft Excel

Урок: Мастер функций в Excel

Способ 2: применение функции с пробелом

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

  1. Выполняем задачу по тому же алгоритму, который описан выше.
  2. Двойным щелчком левой кнопки мыши по ячейке с формулой активируем её для редактирования.
  3. Активация ячейки для редактирования функции СЦЕПИТЬ в Microsoft Excel

  4. Между каждым аргументом записываем выражение в виде пробела, ограниченного с двух сторон кавычками. После внесения каждого такого значения ставим точку с запятой. Общий вид добавленных выражений должен быть следующий:

    " ";

  5. Изменения внесены в Microsoft Excel

    Lumpics.ru

  6. Для того, чтобы вывести результат на экран, жмем на кнопку Enter.

Пробелы в функции СЦЕПИТЬ в Microsoft Excel установлены

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

Способ 3: добавление пробела через окно аргументов

Конечно, если преобразуемых значений не много, то вышеприведенный вариант разрыва склейки прекрасно подойдет. Но его будет затруднительно быстро воплотить, если существуют множество ячеек, которые нужно объединить. Тем более, если эти ячейки не находятся в едином массиве. Значительно упростить расстановку пробела можно, воспользовавшись вариантом его вставки через окно аргументов.

  1. Выделяем двойным кликом левой кнопки мыши любую пустую ячейку на листе. С помощью клавиатуры устанавливаем внутри неё пробел. Желательно, чтобы она находилась подальше от основного массива. Очень важно, чтобы эта ячейка никогда после этого не заполнялась никакими данными.
  2. Ячейка с пробелом в Microsoft Excel

  3. Выполняем те же действия, что и при первом способе применения функции СЦЕПИТЬ, вплоть до открытия окна аргументов оператора. Добавляем значение первой ячейки с данными в поле окна, как это уже было описано ранее. Затем устанавливаем курсор во второе поле, и выделяем ту пустую ячейку с пробелом, о которой шла речь ранее. Появляется ссылка в поле окна аргументов. Для ускорения процесса можно её скопировать, выделив и нажав сочетание клавиш Ctrl+C.
  4. Добавление пустого аргумента СЦЕПИТЬ в Microsoft Excel

  5. Затем добавляем ссылку на следующий элемент, который нужно добавить. В очередном поле опять добавляем ссылку на пустую ячейку. Так как мы скопировали её адрес, то можно установить курсор в поле и нажать сочетание клавиш Ctrl+V. Координаты будут вставлены. Таким способом чередуем поля с адресами элементов и пустой ячейки. После того, как все данные внесены, жмем на кнопку «OK».

Аргументы функции СЦЕПИТЬ в Microsoft Excel

Как видим, после этого в целевой ячейке образовалась объединенная запись, включающая содержимое всех элементов, но с пробелами между каждым словом.

Результат обработки данных функцией СЦЕПИТЬ в Microsoft Excel

Внимание! Как видим, вышеуказанный способ значительно ускоряет процедуру корректного объединения данных в ячейках. Но следует учесть, что данный вариант таит в себе и «подводные камни». Очень важно, чтобы в элементе, который содержит пробел, со временем не появились какие-то данные или он не был сдвинут.

Способ 4: объединение колонок

С помощью функции СЦЕПИТЬ можно быстро объединять данные нескольких колонок в одну.

  1. С ячейками первой строки объединяемых колонок проделываем на выбор те действия, которые указаны во втором и третьем способе применения аргумента. Правда, если вы решили воспользоваться способом с пустой ячейкой, то ссылку на неё нужно будет сделать абсолютной. Для этого, перед каждым знаком координат по горизонтали и вертикали этой ячейки ставим знак доллара ($). Естественно, что лучше всего это сделать в самом начале, чтобы в другие поля, где содержится этот адрес, пользователь мог копировать его, как содержащий постоянные абсолютные ссылки. В остальных полях оставляем относительные ссылки. Как всегда, после выполнения процедуры, жмем на кнопку «OK».
  2. Абсолютные ссылки в аргументах функции СЦЕПИТЬ в Microsoft Excel

  3. Устанавливаем курсор в нижний правый угол элемента с формулой. Появляется значок, имеющий вид крестика, который называется маркером заполнения. Зажимаем левую кнопку мыши и тянем его вниз параллельно расположению объединяемых элементов.
  4. Маркер заполнения в Microsoft Excel

  5. После выполнения этой процедуры данные в указанных столбцах будут объединены в одном столбце.

Столбцы объединены функцией СЦЕПИТЬ в Microsoft Excel

Урок: Как объединить столбцы в Экселе

Способ 5: добавление дополнительных символов

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

  1. Выполняем действия по добавлению значений в окно аргументов функции любым из способов, который был приведен выше. В одно из полей (при необходимости их может быть и несколько) добавляем любой текстовый материал, который пользователь считает нужным добавить. Данный текст обязательно должен быть заключен в кавычки. Жмем на кнопку «OK».
  2. Добавление текстового материала с помощью функции СЦЕПИТЬ в Microsoft Excel

  3. Как видим, после этого действия к объединенным данным был добавлен и текстовый материал.

Текстовый материал добавлен с помощью функции СЦЕПИТЬ в Microsoft Excel

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

Работа с функцией СЦЕПИТЬ в Microsoft Excel

Функция СЦЕПИТЬ в Microsoft Excel

​Смотрите также​ String Dim ra​ End FunctionСцепитьМного. Update​​ а также получить​​: Всем привет!​ ячеек, содержимое которых​ РазделительСтрок As String​ сравниваются значения ячеек​Что потом с​ скорости вызова простейшей​ версиях 20003/2007 это​ но задавать полностью​ / CurrentRegion /​» «​Если Вы никогда​С помощью функции​ этом вручную добавить​Одной из интересных функций​ As Range For​

​ 2017-10-19 Option Explicit​ универсальный вариант для​

Применение оператора СЦЕПИТЬ

​Подскажите, пожалуйста, есть​​ хотим склеить​​ = «, «,​ из п.5​ такой ячейкой планируете​ функции в VBScript​ делается очень криво.​ столбцы, когда много​ UsedRange)​– символ пробела​ прежде не использовали​СЦЕПИТЬ​ пробел не получится,​​ приложения Microsoft Excel​​ Each ra In​ ‘————————————————————————————————————————————————————————————————— ‘ Procedure​ большого количества столбцов.​​ ли решение задачи:​​Например:​ _ Optional ByVal​и т.д. следующие​​ делать?​​ и VBA.​

​ Поэтому просто добавил​ пустых ячеек, будет​

​- количеству критериев​

​ в кавычках​ функции Excel, то​можно быстро объединять​ а только через​ является функция​ диапазон.Areas avData =​ : СцепитьМного ‘​_Boroda_​

Способ 1: объединение данных в ячейках

​Нужно собрать данные​Это универсальный и компактный​ РазделительСтолбцов As String​ условия аналогично п.п.​ЦитатаА сортировку и​У меня VBA​ пример использования, который​ слишком роскошно. Впрочем,​ для сцепки (от​F16​ можете обратиться к​ данные нескольких колонок​​ редактирование формулы.​​СЦЕПИТЬ​

  1. ​ ra.Value If Not​ http://www.excel-vba.ru ‘ Purpose​: Вы рассуждаете верно.​ по условию в​​ способ сцепки, работающий​​ = «; «)​ 5,6,7​ разбивку по строкам​ оказалась быстрее в​

    Переход в Мастер функций в Microsoft Excel

  2. ​ виден в мастере​​ могу добавить подрезку​​ 3 до 0,​​(Product) – наименование​​ разделу​​ в одну.​​Урок:​​. Её основной задачей​​ IsArray(avData) Then ReDim​ : Функция сцепляет​ Везде, кроме фразы​​ одну ячейку при​​ абсолютно во всех​

    Мастер функций в Microsoft Excel

  3. ​ Dim c As​Все условия работают​ выполняет мой примитивный​ 21 раз (0.4​ функций.​ до последней используемой​ т.е. просто сцепить)​Введите вот такую формулу​Формулы и функции​С ячейками первой строки​Мастер функций в Excel​

    ​ является соединение содержимого​ avData(1 To 1,​ все указанные ячейки​ . Формульный массив​ помощи формулы массива.​ версиях Excel.​ Range, v As​ по И-логике (And)​ макрос.Может, нужно было​ секунды) чем VBScript​Вот встроенную справку​ строки листа.​- ограничениям на​ в ячейке​нашего самоучителя по​ объединяемых колонок проделываем​Существуют возможности исправить данный​ двух или нескольких​ 1 To 1)​​ в одну с​​ получится сцепить вместе​

    Аргументы функции СЦЕПИТЬ в программе Microsoft Excel

  4. ​Пример во вложении.​Для​ Variant, t As​Пример вызова функции:​ сразу в одном​ (9.5 секунды)​ для данной функции​3. Так будет​ тип данных (числа,​E19​ Excel для начинающих,​ на выбор те​ недочет, вставив пробелы​ ячеек в одной.​ avData(1, 1) =​ указанным разделителем. ‘​ или посимвольным перебором,​

Результат функции СЦЕПИТЬ в Microsoft Excel

​Спасибо!​​суммирования​

Способ 2: применение функции с пробелом

​ String, s As​=Concat(A:A; «,»; 1;1;​ (нашем) макросе все​

  1. ​Option Explicit Dim​ было бы сделать​ плохо, потому что​
  2. ​ текст, даты)​:​ где представлена серия​ действия, которые указаны​

    Активация ячейки для редактирования функции СЦЕПИТЬ в Microsoft Excel

  3. ​ между аргументами оператора.​ Данный оператор помогает​ ra.Value End If​ Аргументы функции: ‘​ что даст Вам​P.S. ЮПД не​содержимого нескольких ячеек​ String, lr As​ B:B;»=»;3; C:C;»>=»;20; D:D;»=»;»text3″)​ это и сделать?​

    ​ objScript As Object​

    Изменения внесены в Microsoft Excel

  4. ​ разумнее, но это​ даты придется задавать​- способу указания​​=CONCATENATE(F17,» «,F16)​​ уроков на эту​

Пробелы в функции СЦЕПИТЬ в Microsoft Excel установлены

​ во втором и​Выполняем задачу по тому​ решить некоторые задачи,​ For lc =​ Диапазон — диапазон​

Способ 3: добавление пробела через окно аргументов

​ формулу гораздо больше​ хочется использовать, так​ используют знак плюс​ Long, lc As​Acid Burn​Acid Burn​ ‘ Сравнение скорости​ требует немало времени,​ текстом, а Excel​ разделителей, диапазонов, критериев​=СЦЕПИТЬ(F17;» «;F16)​ тему.​ третьем способе применения​ же алгоритму, который​ которые с помощью​ 1 To UBound(avData,​

  1. ​ ячеек, значения которых​ моей (в которой,​ же как и​ «​ Long lr =​: ZVI, в коде​: Точно, что-то я​ выполнения простейшей функции​ попробуйте сделать сами​ тогда может произвольно​ и операторов сравнения​Усложним задачу! Предположим, что​Предположим, у нас есть​

    Ячейка с пробелом в Microsoft Excel

  2. ​ аргумента. Правда, если​ описан выше.​ других инструментов воплотить​ 2) For lr​​ необходимо объединить в​​ кстати, обратите внимание​ дополнительные ячейки. Если​+​ Len(РазделительСтрок) + 1:​ есть небольшая неточность:​ не подумал… Такая​ в VBScript и​ и подключить через​ поменять местами месяц​ (=, >/ По​ мы хотим получить:​ таблица с контактной​ вы решили воспользоваться​Двойным щелчком левой кнопки​ невозможно. Например, с​ = 1 To​ строку. ‘ Разделитель​ на то, как​ без этого ни​​», а для​​ lc = Len(РазделительСтолбцов)​

    Добавление пустого аргумента СЦЕПИТЬ в Microsoft Excel

  3. ​Критерий Должно быть​ ситуация в реальных​ VBA Sub Time_Test()​ Application.MacroOptions.​ и число, если​ мере необходимости подгружаешь​We have 25 apples​ информацией, где имена​ способом с пустой​ мыши по ячейке​ его помощью удобно​​ UBound(avData, 1) If​​ — необязательный аргумент.​ ищет ПОИСК и​ как не решить​склеивания​ + 1 If​ По факту (0,​ условиях вряд ли​ Const N& =​​ZVI​​ ему так захочется​

Аргументы функции СЦЕПИТЬ в Microsoft Excel

​ то одну, то​(У нас есть​ и фамилии находятся​ ячейкой, то ссылку​ с формулой активируем​ производить процедуру объединения​ Len(avData(lr, lc)) Then​

Результат обработки данных функцией СЦЕПИТЬ в Microsoft Excel

​ ‘ Один или​ в чем отличие​ задачу, то подскажите​содержимого ячеек используют​ Диапазон.Rows.Count = 1​ 0) Все, без​ встретится.​ 1000000 Dim i&,​: По поводу того,​nerv​ другую UDF.​ 25 яблок). Для​ в разных столбцах.​ на неё нужно​ её для редактирования.​

Способ 4: объединение колонок

​ ячеек без потерь.​​ sRes = sRes​​ несколько символов, которые​ от Вашего ПОИСКа),​ плз любой вариант.​

  1. ​ знак «​ Then For Each​ сорт. + (1,​Извиняюсь.​ t1!, t2!, ok​ чтобы в Excel​: можно за​И в итоге​ этого нужно добавить​ Мы хотим связать​ будет сделать абсолютной.​Между каждым аргументом записываем​ Рассмотрим возможности данной​ & разделитель &​ будут вставлены между​ или макросом.​_Boroda_​​&​​ v In Диапазон​ 0) Уникал., без​ЦитатаМожет, нужно было​ As Boolean Debug.Print​ 2013 работало быстрее,​e val​ сам начинаешь путаться​ еще один аргумент​ их и получить​ Для этого, перед​ выражение в виде​ функции и нюансы​ avData(lr, lc) End​ каждым словом. ‘​​Не, если хотите,​​: Если столбцов 5​

    Абсолютные ссылки в аргументах функции СЦЕПИТЬ в Microsoft Excel

  2. ​» (расположен на большинстве​ If v <>​ сорт. Все, сорт.​ сразу в одном​ «N = «​ специально не старался,​ить немного​ в них, а​ – фразу «We​ полное имя для​

    Маркер заполнения в Microsoft Excel

  3. ​ каждым знаком координат​ пробела, ограниченного с​ её применения.​ If Next lr​

​ По умолчанию пробел.​​ пробуйте, никто ж​ и без допячеек​

Способ 5: добавление дополнительных символов

​ клавиатур на цифре​​ «» Then s​​ (0, 1) Все,​ (нашем) макросе все​ & N t1​ просто всю обработку​Правда в этом​ файл — тормозить​ have»:​ каждого человека. На​ по горизонтали и​

  1. ​ двух сторон кавычками.​Скачать последнюю версию​ Next lc Next​ ‘ БезПовторов —​ не запрещает. Я​ и без UDF​ «7»). При его​ = s &​ с сорт. Уникал.,​ это и сделать?Если​ = Timer For​ сделал в VBA-массивах.​ случае вряд ли​ при пересчёте.​=CONCATENATE(«We have «,F17,» «,F16)​ рисунке ниже Вы​​ вертикали этой ячейки​​ После внесения каждого​

    Добавление текстового материала с помощью функции СЦЕПИТЬ в Microsoft Excel

  2. ​ Excel​ If Len(sRes) Then​ необязательный аргумент. ‘​ думаю, что в​

Текстовый материал добавлен с помощью функции СЦЕПИТЬ в Microsoft Excel

​ (Вы это имели​​ использовании необходимо помнить,​​ РазделительСтолбцов & v​ без сорт. (1,​ можно будет включать​ i = 1​ Это стандартный метод​ будет​Может кто-нибудь сможет​=СЦЕПИТЬ(«We have «;F17;» «;F16)​ видите имена в​ ставим знак доллара​ такого значения ставим​Функция​ sRes = Mid(sRes,​

​ Если указан как​

lumpics.ru

Функция СЦЕПИТЬ – скотч для Excel

​ свое время через​ в виду, написав​ что:​ Next Else For​ 1) Уникал., с​ и отключать эти​ To N ok​ ускорения обработки для​ЦитатаAcid Burn пишет:​ написать / найти​При желании можно добавлять​ столбце​($)​​ точку с запятой.​​СЦЕПИТЬ​

​ Len(разделитель) + 1)​​ ИСТИНА или 1​​ это прошел каждый​ ЮПД?), то вот​Этот символ надо ставить​ Each c In​ сорт. +​ опции, и это​ = Foo1(i, «Text3»)​ всех версий.​быструю UDF​быструю UDF​ еще больше аргументов,​B​. Естественно, что лучше​

​ Общий вид добавленных​​относится к группе​ End If If​ — в результирующей​ из нас. Также,​ так​​ в каждой точке​​ Диапазон.Columns t =​Т.е. (1, 0)​ не вызовет разрастания​ Next t1 =​Еще для операторов​

Связываем имена

​ЦитатаZVI пишет:​для сцепки любых​ чтобы создать более​, а фамилии в​ всего это сделать​ выражений должен быть​ текстовых операторов Excel.​ БезПовторов Then Dim​ строке будут значения​ как и через​=ПСТР(ЕСЛИ(ЕЧИСЛО(ПОИСК(«, «&M$1&»,»;», «&A2&»,»));», «&A$1;»»)&ЕСЛИ(ЕЧИСЛО(ПОИСК(«,​ соединения, т.е. на​​ «» For Each​​ и (0, 1)​ кода и трудностей​​ Timer — t1​​ заменил сравнение текста​»куда правильнее»Я формулировку​​ данных по 3​​ сложное выражение. Главное​

Функция СЦЕПИТЬ в Excel

​ столбце​ в самом начале,​ следующий:​​ Её основная задача​​ oDict As Object,​ без дубликатов. ‘​ попытку засунуть виртуальный​ «&M$1&»,»;», «&B2&»,»));», «&B$1;»»)&ЕСЛИ(ЕЧИСЛО(ПОИСК(«,​ всех «стыках» текстовых​ v In c.Value​ работают с точностью​ в реализации… То​ Debug.Print «VBScript», Round(t1,​

​ сравнением с числами,​ изменил, если что​ критериям, которые можно​ помните, что синтаксис​A​​ чтобы в другие​​» «;​ — объединение в​ sTmpStr Set oDict​ Для английской локализации​ диапазон в Проверку​

  • ​ «&M$1&»,»;», «&C2&»,»));», «&C$1;»»)&ЕСЛИ(ЕЧИСЛО(ПОИСК(«,​​ строк также, как​ If v <>​
  • ​ до наоборот.​​ было бы отлично​ 3) & «​
  • ​ это тоже выполняется​​ ) Теперь это​ задавать по необходимости.​

​ формулы должен быть​. Наша формула будет​ поля, где содержится​​Для того, чтобы вывести​​ одной ячейке содержимого​

​ = CreateObject("Scripting.Dictionary") sTmpStr​
​ данный параметр указывается​

​ данных.​ «&M$1&»,»;», «&D2&»,»));», «&D$1;»»)&ЕСЛИ(ЕЧИСЛО(ПОИСК(«,​ вы ставите несколько​ «» Then t​Буду благодарен, если​nerv​ sec» t2 =​ быстрее.​ можно​

​Примерно такого вида​​ предельно точен, иначе​ в ячейке​ этот адрес, пользователь​ результат на экран,​ нескольких ячеек, а​ = Split(sRes, разделитель)​ как TRUE и​Jack Famous​

​ «&M$1&»,»;», «&E2&»,»));», «&E$1;»»);3;999)​ плюсов при сложении​​ = t &​​ подправите (сам пока​​: вообще-то я ничего​​ Timer For i​

​ZVI​ZVI​=СЦЕПКА(Разделитель; Диапазон сцепки;​ она может не​​E2​​ мог копировать его,​ жмем на кнопку​ также отдельных символов.​

Функция СЦЕПИТЬ в Excel

​ On Error Resume​ FALSE соответственно. ‘​:​​На каждый новый​​ нескольких чисел (2+8+6+4+8)​ РазделительСтрок & v​​ не понял, как​​ не предлагаю решать)​ = 1 To​

Функция СЦЕПИТЬ в Excel

Связываем числа и текст

​: Александр, хотелось бы​​: Александр, да, тогда​​ Optional Диап. усл._1;​ заработать. В большой​.​ как содержащий постоянные​Enter​ Начиная с версии​ Next For lr​ Update 2017-10-19: http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=97166&TITLE_SEO=97166-stsepit-yacheyki-v-nesmezhnom-rvanom-diapazone​​Доброго утра, Планетяне!​​ столбец добавляете кусок​Если нужно приклеить произвольный​ Next If t​)…​ Я только высказываю​ N ok =​ в теме автора​ будет медленнее, как​

Функция СЦЕПИТЬ в Excel

​ Оператор_1 & Условие_1;​ формуле легко допустить​

  • ​Прежде, чем мы начнем​​ абсолютные ссылки. В​.​
  • ​ Excel 2016, вместо​​ = LBound(sTmpStr) To​ ‘ Изменения: работает​
  • ​Есть замечательная UDF​​ типа​

​ текст (даже если​ <> «» Then​​amix_6​​ свое мнение о​

​ Foo2(i, "Text3") Next​
​ решать проблемы автора.​

​ плата за универсальность.​ Optional Диап. усл._2;​​ ошибку!​​ вводить формулу, поймите​ остальных полях оставляем​Как видим, на месте​ данного оператора используется​ UBound(sTmpStr) oDict.Add sTmpStr(lr),​ в несмежных диапазонах.​

​ от Дмитрия Щербакова​
​Код&ЕСЛИ(ЕЧИСЛО(ПОИСК(", "&M$1&",";", "&E2&","));",​

​ это всего лишь​ s = s​: Добрый день! Подскажите,​ том, что у​ t2 = Timer​У меня есть​Встроенная функция СУММЕСЛИМН()​ Оператор_2 & Условие_2;​Урок подготовлен для Вас​ важный момент: функция​ относительные ссылки. Как​

​ вставки пробелов с​ функция​
​ sTmpStr(lr) Next lr​
​ При этом первый​

​ «СцепитьМного». Сцепляет данные​

office-guru.ru

Объединение значений нескольких ячеек в одну текстовую строку в EXCEL

​ «&E$1;»»)​ точка или пробел,​ & РазделительСтолбцов &​

​ пожалуйста, как сцепить​ одного автора одни​ — t2 Debug.Print​ правило: решая проблему​ использует аналогичные моему​

​ Optional Диап. усл._3;​ командой сайта office-guru.ru​СЦЕПИТЬ​ всегда, после выполнения​ кавычками в ячейке​

​СЦЕП​ sRes = «»​ аргумент(рваные диапазоны) надо​ в диапазоне через​Еще в файле​

​ не говоря уж​ Mid(t, lr) Next​ диапазон ячеек по​ критерии отбора​ «VBA», Round(t2, 3)​

​ сначала убедиться, проблема​ варианту простые операторы​ Оператор_3 & Условие_3)​

​Источник: http://www.gcflearnfree.org/excel-tips/concatenate-excels-duct-tape/full​будет связывать только​ процедуры, жмем на​ появились разделения между​

​. Но в целях​ sTmpStr = oDict.Keys​ будет передавать обязательно​ разделитель. Пропускает пустые​ покрасия нужные ячейки​ о целом слове),​ End If СцепитьДиапазон2​ столбцам (вертикально). В​Цитата=, >/ a​ & » sec»​ ли это вообще.​ и этого хватает​Очень надеюсь на​Перевел: Антон Андронов​ то, что Вы​

​ кнопку​ словами.​ сохранения обратной совместимости​ For lr =​ заключив в скобки​ ячейки и контролирует​ Условным форматированием​ то этот текст​ = Mid(s, lc)​ интернете нашла отличный​

​ * 2 >​ Debug.Print «VBA is​А автор темы​ для большинства случаев.​ Вашу помощь и​Автор: Антон Андронов​ укажете и ничего​«OK»​Конечно, если преобразуемых значений​​ оператор​​ LBound(sTmpStr) To UBound(sTmpStr)​ (добавить их вручную):​ дубликаты.​​Ячейку М1 можно​​ надо заключать в​ End FunctionПравда, для​ вариант через vba,​ b — 1​ faster in «​

​ не озвучивал проблему,​

​Acid Burn​ понимание.​Объединим значения из нескольких​

​ более. Если необходимо,​​.​ не много, то​СЦЕПИТЬ​ sRes = sRes​

excel2.ru

Универсальная функция Сцепить

​ =СцепитьМного((A2;A3;A4;A5);»-«) ‘—————————————————————————————————————————————————————————————————- Function​​Всё хорошо, но,​​ менять​
​ кавычки. В предыдущем​ меня загадка, как​ но в нем​ ‘или такое a​ & Round(t1 /​ которые Вы предлагаете​
​: To ZVI.​Заранее огромное спасибо!​ ячеек в одной​ чтобы в ячейке​
​Устанавливаем курсор в нижний​ вышеприведенный вариант разрыва​тоже оставлен, и​ & IIf(sRes <>​
​ СцепитьМного(диапазон As Range,​ часто приходится сцеплять​Logotip​ примере с функцией​
​ в таком случае​ только построчно. Excel​ / 2 +​
​ t2, 0) &​ решать.​> 1. Не понял​PS: Мои поздравления​ ячейке.​ появились знаки пунктуации,​ правый угол элемента​
​ склейки прекрасно подойдет.​ его можно использовать​ «», разделитель, «»)​ Optional разделитель As​ «рваный» диапазон, то​
​: Да, именно UDF​ СЦЕПИТЬ о кавычках​​ вы будете различать​​ 2013​ a — b​ » times» End​Что тормозит -​
​ вопроса…​
​ по поводу перехода​Предположим, что имеется диапазон​ пробелы или что-то​ с формулой. Появляется​ Но его будет​ наравне со​ & sTmpStr(lr) Next​
​ String = «​ есть ячейки, идущие​ имел ввиду.​
​ заботится сам Excel​
​ массивы:​Спасибо огромное!​в Вашу функцию​
​ Sub ‘ VBScript​

​ проверьте, конечно. Я​​Я имел ввиду,​ на современный движок.​ имен, необходимо, чтобы​ еще, добавьте их​ значок, имеющий вид​ затруднительно быстро воплотить,​
​СЦЕП​
​ lr End If​ «, Optional БезПовторов​ НЕ подряд. Таких​Спасибо большое за​
​ — в этом​
​1 11и​Public Function СЦЕПИТЬДИАПАЗОН(ByRef​ просто так не​
​ function Function Foo1(a,​ когда-то проверял.​ что, если заменить​Стало намного лучше!​
​ все имена были​ в аргументы функции.​ крестика, который называется​ если существуют множество​
​.​ СцепитьМного = sRes​ As Boolean =​
​ «зон/областей» может быть​ решение.​
​ же случае их​
​11 1поскольку результат​ ДИАПАЗОН As Excel.Range,​

​ запишешь, придется лезть​​ b) If objScript​Но тот факт,​:)
​ C1:C6;»=»;3 на C1:C6;»>»;3,​​ZVI​ выведены подряд в​
​В данном примере мы​ маркером заполнения. Зажимаем​ ячеек, которые нужно​Синтаксис этого оператора выглядит​ End FunctionПри этом​ False) Dim avData,​
​ много (у меня​

​А можно как-то​​ надо ставить вручную.​​ для них будет​​ Optional ByVal РАЗДЕЛИТЕЛЬ​
​ в код. Т.о.​
​ Is Nothing Then​ что и JScript​ то функция выдаёт​
​: Приложил вариант функции​ одной ячейке.​ хотим, чтобы между​
​ левую кнопку мыши​ объединить. Тем более,​ следующим образом:​
​ первый аргумент(рваные диапазоны)​ lr As Long,​ до 20 бывает,​
​ решить эту задачу​Вот, например, как можно​
​ одинаковым — «1;​ As String =​ если потребуется n​ Set objScript =​;)​ и VBScript могут​
​ #Cond1?​ Concat(), допускающей до​
​Когда значений немного, то​
​ именами стоял пробел​ и тянем его​ если эти ячейки​=СЦЕПИТЬ(текст1;текст2;…)​
​ надо будет передавать​

​ lc As Long,​​ но, думаю, что​ через формулу массива?​ собрать ФИО в​;)

​ 1; 1″.Спасибо огромное!​​ «») As String​ «аналогичных» замысловатых условий,​ CreateObject(«ScriptControl») With objScript​ быть отключены администратором,​> 2. могу добавить​ 9 условий в​ объединить их можно​ (чтобы не получалось​
​ вниз параллельно расположению​ не находятся в​В качестве аргументов могут​ обязательно заключив в​ sRes As String​ для изменённого кода​_Boroda_​ одну ячейку из​ Последний вариант для​
​ Dim rCell As​ придется писать n​ .Language = «VBScript»​ уменьшают мой интерес​ подрезку до последней​ Excel 2003 и​ с помощью функции​ что-то вроде –​

​ объединяемых элементов.​​ едином массиве. Значительно​​ выступать, как текст,​​ скобки: =СцепитьМного((A2;A3;A4;A5);»-«)​:)​ Dim ra As​ это будет неважно).​: Можно. Введите мою​
​ трех с добавлением​
​ меня подошел идеально,​
​ Range Dim MergeText​
​ вариантов сравнения​ .AddCode «Function Fn(a,b):Fn​ к данному решению.​ используемой строки листа.​;)

​ до 84 условий​​ СЦЕПИТЬ() записав формулу​JosephineCarter​После выполнения этой процедуры​
​ упростить расстановку пробела​ так и ссылки​Jack Famous​ Range For Each​Вопрос:​

​ формулу не Ентером,​​ пробелов:​
​ тк в моем​ As String For​
​ЦитатаZVI пишет:​ = a=1 And​ Тем более, что​Было бы здорово.​ в Excel 2007+.​
​ =СЦЕПИТЬ(A6;A7;A8;A9)​), поэтому в аргументы​ данные в указанных​
​ можно, воспользовавшись вариантом​ на ячейки, которые​:​ ra In диапазон.Areas​что нужно изменить​
​ а одновременным нажатием​Если сочетать это с​
​ случае не бывает​ Each rCell In​
​Все же приведу​
​ b=»»text3″»:End Function» End​ есть гораздо более​ Если при этом​Порядок аргументов функции:​Или с помощью Амперсанда​
​ нам нужно будет​ столбцах будут объединены​ его вставки через​
​ его содержат. Количество​The_Prist, огромное спасибо, автору!!!​ avData = ra.Value​ в коде, чтобы​ Контрл Шифт Ентер​
​ функцией извлечения из​ пустых столбцов между​

​ ДИАПАЗОН If rCell.Text​​ код для сравнения​​ With End If​​ быстрые методы, но​ она будет правильно​1. Диапазон ячеек​ & (добавим еще​ добавить пробел. Таким​
​ в одном столбце.​ окно аргументов.​ аргументов может варьироваться​работает и для​ If Not IsArray(avData)​ реализовать возможность выделения​А если серьезно,​ текста первых букв​ заполненными, данные заносятся​ <> «» Then​ скорости вызова простейшей​ Foo1 = objScript.Run(«Fn»,​ они на грани​ работать на всех​ (столбец или несколько​ для красоты символ​ образом, у нас​

​Урок:​​Выделяем двойным кликом левой​ от 1 до​ сплошного и для​
​ Then ReDim avData(1​ несмежных областей?​ то формула массива​ -​:D

​ подряд.​​ MergeText = MergeText​ функции в VBScript​
​ a, b) End​
​ здравого смысла, поэтому​ листах…​ смежных), которые должны​ пробела): =A6&» «&A7&»​ окажется три аргумента:​Как объединить столбцы в​
​ кнопки мыши любую​
​ 255 включительно.​ разрывного​

​ To 1, 1​​При этом, чтобы​ (да и не​ЛЕВСИМВ (LEFT)​Еще раз спасибо!​ & РАЗДЕЛИТЕЛЬ &​
​ и VBA.ч и​ Function ‘ VBA​
​ о них тоже​> 3. Так будет​ попасть в результат​
​ «&A8&» «&A9​B2​ Экселе​ пустую ячейку на​Как известно, обычное объединение​скажите пожалуйста, а​ To 1) avData(1,​ сохранился контроль над​ только, обычная иногда​, то можно получить​
​Надпись на заборе: «Катя​ rCell.Text End If​ т.д. Ибо, как​ function Function Foo2(a,​ не распространяюсь​ плохо​2. Разделитель результата​Если значений много, то​

​(First Name) –​​Функцию​ листе. С помощью​ ячеек в Эксель​ вот эти скобки​ 1) = ra.Value​ дубликатами и пропуск​ тоже) дает результатом​ фамилию с инициалами​ + Миша +​
​ Next MergeText =​ мне кажется, слабым​ b) Foo2 =​Acid Burn​Тогда лучше оставить,​

​3. Столбец №1​​ придется вводить вручную​ имя​СЦЕПИТЬ​
​ клавиатуры устанавливаем внутри​ приводит к потере​ рисовать только вручную​ End If For​
​ пустых ячеек.СцепитьМного Option​ МАССИВ. Массив можно​ одной формулой:​ Семён + Юра​
​ Mid(MergeText, Len(РАЗДЕЛИТЕЛЬ) +​ местом (в данном​ a = 1​
​: Жаль, что нельзя​ как есть.​ ячеек, участвующих в​ много амперсандов и​» «​можно также использовать​ неё пробел. Желательно,​ данных. Сохраняются только​ можно? Программно слишком​ lc = 1​ Explicit ‘————————————————————————————— ‘​ вывести на лист​Имеем текст в нескольких​:)

​ + Дмитрий Васильевич​​ 1) СЦЕПИТЬДИАПАЗОН =​ случае) как раз​ And b =​ сделать полноценные подсказки​
​Ещё 2 вопроса:​ условии №1​ аргументов функции СЦЕПИТЬ().​
​– символ пробела​ для добавления дополнительных​ чтобы она находилась​ данные расположенные в​
​ запарно будет?​ To UBound(avData, 2)​
​ Procedure : СцепитьМного​ в столько ячеек,​ ячейках и желание​

​ +​​ MergeText End Function​ является передача параметров​

​ «text3» End Function​​ при вводе UDF​- можно ли​4. Оператор условия​ Это неудобно.​ в кавычках​ символов и выражений,​ подальше от основного​ верхнем левом элементе.​The_Prist​ For lr =​:)
​ ‘ http://www.excel-vba.ru ‘​
​ сколько в этом​ — объединить эти​товарищ Никитин +​amix_6​ и частый вызов​ ‘​ в ячейку…​ дописать кусок кода,​​ №1, может быть​Избежать этого поможет дополнительный​​A2​;)
​ которых не было​ массива. Очень важно,​

​ Для того, чтобы​​: Если речь про​ 1 To UBound(avData,​ Purpose : Функция​ массиве значений (по​
​ ячейки в одну,​ рыжий сантехник +​:​ функции. .ЦитатаZVI пишет:​
​Acid Burn​Но это не​ который будет выдавать​
​ одним из: «=»,​
​ столбец с простейшей​(Last Name) —​ в первоначальном объединяемом​ чтобы эта ячейка​ объединить содержимое двух​ проставление из самой​ 1) If Len(avData(lr,​ сцепляет все указанные​
​ вертикали и горизонтали).​ слив туда же​ Витенька + телемастер​amix_6​У меня VBA​: 2 вопроса:​
​ критично, ведь синтаксис​
​ подсказку при вводе​ «>=», «»​ формулой:​

​ фамилия​​ диапазоне. Более того,​ никогда после этого​ и более ячеек​ функции, то программно​ lc)) Then sRes​
​ ячейки в одну​ В одну ячейку​ их текст. Проблема​ Жора +​, попробуйте — Public​
​ оказалась быстрее в​- как убрать​ прост.​ UDF​5. Значение условия​Значение из последней строки​Теперь, когда аргументы определены,​ можно с помощью​ не заполнялась никакими​ в Эксель без​ вообще не получится,​ = sRes &​ с указанным разделителем.​ в общем случае​ в одном -​сволочь Редулов +​ Function СЦЕПИТЬДИАПАЗОНn(ByRef ДИАПАЗОН​ 21 раз (0.4​ ошибку #ЗНАЧ! при​Завтра обязательно проверю​(так, как это​ №1, с которым​ будет содержать желаемую​ мы можем записать​ данной функции внедрять​ данными.​ потерь можно применить​ т.к. точка-с-запятой(проставляемая для​ разделитель & avData(lr,​ ‘ Аргументы функции:​ чисто формулой не​ кнопка​ не вспомнить имени,​ As Excel.Range, Optional​ секунды) чем VBScript​ отсутствии критериев сцепления​ Concat1 на рабочем​ реализовано для «родных»​ сравниваются значения ячеек​ текстовую строку (см.​ в ячейку​ и другие операторы.​Выполняем те же действия,​ функцию​ рваных диапазонов) является​ lc) End If​ ‘ Диапазон —​ получится все это​Объединить и поместить в​ длинноволосый такой +​ ByVal РАЗДЕЛИТЕЛЬ As​ (9.5 секунды)Вместе с​(когда просто надо​ файле (сейчас нет​

​ формул)​​ из п.3​
​ файл примера).​E2​Выполняем действия по добавлению​
​ что и при​СЦЕПИТЬ​
​ еще и разделителем​ Next lr Next​ диапазон ячеек, значения​

​ засунуть.​​ центре (Merge and​ещё 19 мужиков​ String = «»)​
​ тем, вариант реализации​ сцепить диапазон)?​ под рукой).​- как Вам​
​и т.д. следующие​Возвращаясь к функции СЦЕПИТЬ()​вот такую формулу:​ значений в окно​ первом способе применения​.​ аргументов. Сама функция​ lc Next If​
​ которых необходимо объединить​Это все с​;)

​ Center)​​ + муж =​​ As String Dim​
​ через объект​- как к​Думаю, проблем не​
​ удалось сделать выполнение​ условия аналогично п.п.​
​ можно обнаружить, что​=CONCATENATE(B2,» «,A2)​ аргументов функции любым​
​ функции​Выделяем ячейку, в которой​
​ ничего не сможет​ Len(sRes) Then sRes​ в строку. ‘​
​ учетом того, что​в Excel объединять-то​ любовь!»​ v Dim MergeText​
​ScriptControl​ этой UDF добавить​ возникнет.​
​ макроса в 2013​ 3,4,5​ она может вернуть​

​=СЦЕПИТЬ(B2;» «;A2)​​ из способов, который​СЦЕПИТЬ​ планируем разместить объединенные​ сделать в этом​ = Mid(sRes, Len(разделитель)​ Разделитель — необязательный​ Вам ведь нужно,​ ячейки умеет, а​В категории​ As String For​, на мой взгляд,​ опцию «Без повторов»?​To ZVI: огромное спасибо​ офисе быстрее, чем​
​Все условия работают​ несколько значений в​Как и с любой​ был приведен выше.​, вплоть до открытия​
​ данные. Кликаем на​ случае и ошибка​ + 1) End​
​ аргумент. ‘ Один​ чтобы автоматически все​ вот с текстом​Текстовые​ Each v In​ будет быстрее варианта​ZVI​

​ за UDF и​​ в 2007​ по И-логике (And)​ одной строке и​ другой функцией Excel,​ В одно из​
​ окна аргументов оператора.​
​ кнопку​ возникнет еще на​ If If БезПовторов​ или несколько символов,​ менялось, правильно?​ сложность — в​есть функция​ ДИАПАЗОН.Value If v​Evaluate()​: 1. В моем​ советы!​:oops:

​(во всех моих​​Пример вызова функции:​ без утомительного ввода​ важен синтаксис. Не​ полей (при необходимости​ Добавляем значение первой​«Вставить функцию»​ стадии обращения к​
​ Then Dim oDict​ которые будут вставлены​Но вообще-то для​ живых остается только​СЦЕПИТЬ (CONCATENATE)​ <> «» Then​
​.​ примере работает: =Concat(A1:A6;​RAN​ макросах получается наоборот)​=Concat(A1:A6; «,»; B1:B6;»=»;3;​ многочисленных аргументов. Для​ забудьте начать со​ их может быть​:)
​ ячейки с данными​
​. Она имеет вид​ функции, без выполнения​ As Object, sTmpStr​ между каждым словом.​ этой задачи как​ текст из верхней​, которая соединяет содержимое​ MergeText = MergeText​ЦитатаZVI пишет:​ «,» )​: А для общего​nerv​
​ C1:C6;»>=»;20; D1:D6;»=»;»text3″)​ этого запишем формулу​ знака равенства (=)​ и несколько) добавляем​ в поле окна,​ пиктограммы и размещена​ даже первой строки​​ Set oDict =​​ ‘ По умолчанию​ раз прекрасно подходят​​ левой ячейки.​​ нескольких ячеек (до​
​ & РАЗДЕЛИТЕЛЬ &​
​Александр, хотелось бы​2. Нужно сначала​ развития можно познакомить?​:​nerv​ =СЦЕПИТЬ(A6:A9), указав в​ и поставить между​ любой текстовый материал,​ как это уже​
​ слева от строки​
​ кода.​ CreateObject(«Scripting.Dictionary») sTmpStr =​​ пробел. ‘ БезПовторов​

​ UDF-ки, которых огромная​​Чтобы объединение ячеек происходило​ 255) в одно​ v End If​
​ в теме автора​ придумать, как задавать​ZVI​ZVI,​: Хорошо, что все​ качестве единственного аргумента​ аргументами разделители (запятая​ который пользователь считает​ было описано ранее.​

​ формул.​​А если вписывать​​ Split(sRes, разделитель) On​
​ — необязательный аргумент.​ куча понаписана.​ с объединением текста​
​ целое, позволяя комбинировать​ Next MergeText =​ решать проблемы автора.считаю​ , что требуется​: Рад был помочь,​
​как-то так на​ переехали​

​ весь диапазон сразу,​​ или точка с​ нужным добавить. Данный​
​ Затем устанавливаем курсор​Открывается​ другой процедурой -​ Error Resume Next​
​ ‘ Если указан​
​Здесь в Готовых​ (как в таблицах​
​ их с произвольным​ Mid(MergeText, Len(РАЗДЕЛИТЕЛЬ) +​
​ отхождение от темы​ именно «уникально».​ справку могу в​
​ скорую руку. Правда,​ZVI,​ а не отдельные​ запятой).​
​ текст обязательно должен​ во второе поле,​Мастер функций​ не вижу проблем.​
​ For lr =​ как ИСТИНА или​ решениях парочка есть​
​ Word) придется использовать​ текстом. Например, вот​
​ 1) СЦЕПИТЬДИАПАЗОНn =​
​ делом обычным и​Наверное, проще сделать​

​ принципе и нарисовать,​​ не уверен, что​согласитесь, не очень​
​ ячейки. В результате​Замечание:​ быть заключен в​ и выделяем ту​. В категории​ Либо через Union​ LBound(sTmpStr) To UBound(sTmpStr)​ 1 — в​ http://www.excelworld.ru/forum/3-0-1-0-10-1-[%D1%81%D1%86%D0%B5%D0%BF]​ макрос. Для этого​ так:​
​ MergeText End Function​ не подсудным, т.к.​ еще одну функция​ но тогда придется​
​ будет работать в​ гибко​ получим лишь значение​:oops:​ставить между аргументами​

planetaexcel.ru

Сцепить диапазон по столбцам

​ кавычки. Жмем на​​ пустую ячейку с​«Текстовые»​ передавайте диапазон, либо​ oDict.Add sTmpStr(lr), sTmpStr(lr)​ результирующей строке будут​Logotip​ откройте редактор Visual​Нюанс: не забудьте о​amix_6​
​ эти отхождения, зачастую,​
​ с другим именем,​ все это засовывать​ Office x64​В данном случае​ первой ячейки.​ запятую или точку​ кнопку​ пробелом, о которой​или​ вписывайте текстом через​ Next lr sRes​ значения без дубликатов.​:​ Basic на вкладке​ пробелах между словами​: Спасибо огромное, это​ гораздо более интересны​ например, ConcatUniq(), чтобы​

​ в надстройку. Задачка​​Function Foo(ByVal Valid​​ идеальный вариант (на​​Теперь в Строке формул​ с запятой –​«OK»​ шла речь ранее.​«Полный алфавитный перечень»​ .Formula.​ = «» sTmpStr​ ‘ Для английской​Согласен, это соответствует​Разработчик -​ — их надо​ то что надо!​ основной поставленной задачи​ не усложнять синтаксис​ была специфическая, но​ As String, a,​ мой взгляд) передавать​ выделим формулу =СЦЕПИТЬ(A6:A9)​

​ зависит от того,​​.​ Появляется ссылка в​
​ищем оператор​Jack Famous​ = oDict.Keys For​ локализации данный параметр​ условиям задачи ))​Visual Basic (Developer -​ прописывать как отдельные​Попрошу еще о​ЦитатаRAN пишет:​
​ аргументов. Или требуется,​

​ интересная, спасибо и​​ b) As Boolean​​ функцию, возвращающую степень​​ и нажмем клавишу​ в какой стране​Как видим, после этого​ поле окна аргументов.​«СЦЕПИТЬ»​: The_Prist, большое спасибо​
​ lr = LBound(sTmpStr)​ указывается как TRUE​Цитата​ Visual Basic)​ аргументы и заключать​ помощи, может можно​А для общего​ чтобы всегда были​ Вам — за​ With CreateObject(«ScriptControl») .Language​ истинности условия, что​ F9. Получим массив​ Вы живёте и​ действия к объединенным​ Для ускорения процесса​. Выделяем это наименование​ за советы!​ To UBound(sTmpStr) sRes​ и FALSE соответственно.​_Boroda_, 03.11.2017 в​или сочетанием клавиш​ в скобки, ибо​ чтобы разделитель между​

​ развития можно познакомить?я​ только уникальные?​ развлечение​ = «JScript» .AddCode​ то вроде​ ={«Вася»:»Петя»:»Даша»:»Маша»}, его можно​ какой версией Excel​
​ данным был добавлен​ можно её скопировать,​ и жмем на​На вашей тестить​ = sRes &​ ‘————————————————————————————— Function СцепитьМного(диапазон​ 10:41, в сообщении​ Alt+F11, вставим в​ текст.​ данными в столбцах​за​Потом еще и​To RAN:​ «function fn(a,b,c,d,e){return «​a > b​ скопировать в буфер​ пользуетесь.​ и текстовый материал.​ выделив и нажав​ кнопку​ не буду, но​ IIf(sRes <> «»,​ As Range, Optional​ № 4 ()​ нашу книгу новый​Очевидно, что если нужно​ был один (например​ZVI​ сортировка потребуется?​Цитата А для​ & Valid &​Acid Burn​ обмена (без знака​Вот и всё! Когда​Оператор​ сочетание клавиш​«OK»​ есть задумка UDF​ разделитель, «») &​ разделитель As String​ А если серьезно,​ программный модуль (меню​ собрать много фрагментов,​ запятая), а между​: Мне же неизвестно,​Acid Burn​
​ общего развития можно​
​ «}» Foo =​:​ = и фигурных​ нажмете​СЦЕПИТЬ​Ctrl+C​.​ на основе СЧИТАТЬПУСТОТЫ​ sTmpStr(lr) Next lr​ = » «,​ то формула массива​
​Insert — Module​

CyberForum.ru

3 способа склеить текст из нескольких ячеек

​ то использовать эту​ группами значений столбцов​ в какие ячейки​:​ познакомить?Андрей, там же​
​ .Run(«fn», a, b)​ZVI​ скобок) и вставить​Enter​
​– единственная возможность​.​Запускается окно аргументов функции.​
​ для рваных диапазонов.​ End If СцепитьМного​ Optional БезПовторов As​

Способ 1. Функции СЦЕПИТЬ, СЦЕП и ОБЪЕДИНИТЬ

​ (да и не​​) и скопируем туда​​ функцию уже не​​ другой (например точка​​ помещать результат.​> работает: =Concat(A1:A6; «,»)​ было продолжение (подчеркнуто):​ End With End​, Вы — гений!​ в нужную ячейку.​, появится полное имя:​

Склейка текста функцией СЦЕПИТЬ

​ объединения ячеек без​Затем добавляем ссылку на​ В качестве аргументов​ Создам тут тему​ = sRes End​ Boolean = False)​ только, обычная иногда​

​ текст такого простого​ очень удобно, т.к.​ с запятой).​Раз ситуация с​Да, но есть​ «есть гораздо более​ Function Sub Example()​Погонял функцию:​От наборов символов «:»​Josephine Carter​ потерь в Excel.​​ следующий элемент, который​​ могут выступать ссылки​ и опробую уже​ Function​ Dim avData, lr​ тоже) дает результатом​​ макроса:​​ придется прописывать ссылки​Спасибо еще раз!​ 32787 символами не​ ограничение количества строк​ быстрые методы, но​ MsgBox Foo(«a >​- Правильно работает​ (двойные кавычки, двоеточие​.​ Кроме того, с​

Склейка функцией СЦЕП

​ нужно добавить. В​ на ячейки, содержащие​ на ней)))​​The_Prist​​ As Long, lc​ МАССИВ. Массив можно​Sub MergeToOneCell() Const​

​ на каждую ячейку-фрагмент​amix_6​

​ типичная, то пока​

  • ​ (где-то ~5652 строк).​​ они на грани​ b», 4, 3)​ с текстом, числами​
  • ​ и опять двойные​Теперь, потянув мышью за​ его помощью можно​ очередном поле опять​
  • ​ данные или отдельный​​tankwar121​: почти все(кроме отсечения​ As Long, sRes​

​ вывести на лист​

Склейка текста функцией ОБЪЕДИНИТЬ

Способ 2. Символ для склеивания текста (&)

​ sDELIM As String​ по отдельности. Поэтому,​: Здравствуйте,​ просто добавил сортировку​

​Т.е. =Concat(A1:A10000; «,»)​​ здравого смысла,​​ ‘ True MsgBox​ и датами​ кавычки) можно избавиться​​ маркер автозаполнения, скопируйте​​ соединять целые столбцы,​​ добавляем ссылку на​​ текст. Если в​: Нужно сцепить диапазон​​ дублей). Будет выглядеть​​ As String avData​ в столько ячеек,​ = » «​ начиная с 2016​amix_6​

  • ​ и сделал еще​ уже не сработает.​поэтому о них тоже​ Foo(«a > b»,​- Операторы и​ с помощью функции​ формулу во все​ добавлять текстовые значения,​
  • ​ пустую ячейку. Так​ задачу входит объединение​ ячеек который указан​ так: Option Explicit​ = диапазон.Value If​ сколько в этом​ ‘символ-разделитель Dim rCell​ версии Excel, на​, Улучшил предложенную выше​ одну функцию для​> или требуется, чтобы​ не распространяюсь​ 4, 7) ‘​ разделители можно задавать​ ПОДСТАВИТЬ() (см. файл​

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

Сцепка текста амперсандом

​ ‘————————————————————————————— ‘ Procedure​ Not IsArray(avData) Then​ массиве значений (по​ As Range Dim​​ замену функции​​ функцию: теперь в​ уникальных значений CondUnique(),​ всегда были только​

Склейка ФИО

Способ 3. Макрос для объединения ячеек без потери текста.

​»​ False End Sub​ ссылкой на ячейку​ примера). или с​E11​ манипуляции. Знание алгоритма​ её адрес, то​ в данном случае​​ — пробел)​ : СцепитьМного ‘​ СцепитьМного = avData​​ вертикали и горизонтали).​ sMergeStr As String​СЦЕПИТЬ​ ее параметрах можно​ аргументы — те​ уникальные?​Не готов грузить​

​ZVI​- Время выполнения​ помощью инструмента Заменить​. В итоге полное​ работы с этой​ можно установить курсор​ мы будем работать​​Step_UA​ ​ http://www.excel-vba.ru ‘ Purpose​ Exit Function End​​ В одну ячейку​ If TypeName(Selection) <>​пришла ее более​ задавать отдельно разделитель​​ же​​> Потом еще и​ этим сумасшествием.​: Александр, медленно все​

​ в массиве 4х1048576​ (нажмите ​ имя появится для​ функцией позволит облегчить​ в поле и​ только со ссылками.​: Function SSS(R As​ : Функция сцепляет​ If For lc​ в общем случае​ «Range» Then Exit​ совершенная версия с​ строк и отдельно​Acid Burn​ сортировка потребуется?​Acid Burn​ это будет. Можно​ (4х10.000 строк заполнено):​CTRL+H​ каждого человека.​ решение многих вопросов​ нажать сочетание клавиш​Устанавливаем курсор в первое​ Range) As String​ все указанные ячейки​ = 1 To​ чисто формулой не​ Sub ‘если выделены​

​ похожим названием и​ — разделитель столбцов.​:​Нет, по ситуации​: О подсказках /​​ значительно быстрее.​​10.98/ 9.11/ 4.98​​, чтобы его вызвать).​​Если хотите усложнить задачу,​ для пользователя программы.​Ctrl+V​ поле окна. Затем​ SSS = Join(WorksheetFunction.Transpose(R.Value),​

planetaexcel.ru

СЦЕПИТЬ в одну ячейку формулой массива

​ в одну с​​ UBound(avData, 2) For​
​ получится все это​ не ячейки -​
​ тем же синтаксисом​Public Function СцепитьДиапазон(ByVal​Спасибо!​ требуется выбрать все​
​ справке к UDF​
​Но мне-то это​
​ сек. (Excel 2007/​ Если строка Вася»:»Петя»:»Даша»:»Маша​ то попробуйте при​Автор: Максим Тютюшев​. Координаты будут вставлены.​ выделяем ссылку на​ » «) End​ указанным разделителем. ‘​

​ lr = 1​​ засунуть.​ выходим With Selection​ — функция​ Диапазон As Range,​А можно привести​ или только уникальные.​ я поинтересовался для​
​ зачем? Здесь же​ 2010/ 2013)​ находится в ячейке​ помощи функции​Им пользовался Макгайвер. Экипаж​
​ Таким способом чередуем​ листе, в которой​ FunctionВ качестве параметра​
​ Аргументы функции: ‘​ To UBound(avData, 1)​
​Ну, почему же​ For Each rCell​СЦЕП (CONCAT)​
​ _ Optional ByVal​ синтаксис Concat() к​

​А сортировку и​​ общего развития.​ автору темы помогаем,​
​Несколько вопросов: можно​G8​
​СЦЕПИТЬ​ Аполлон-13 также использовал​ поля с адресами​

​ содержатся данные, нужные​​ передаем связаный диапазон​ Диапазон — диапазон​ If Len(avData(lr, lc))​ не получится (если​
​ In .Cells sMergeStr​. Ее принципиальное отличие​ РазделительСтрок As String​ виду:​ разбивку по строкам​Вы сделали отличную​ а не мне​ ли​, то формула для​связать город и​ его. Всегда в​ элементов и пустой​ для объединения. После​ из не менее​ ячеек, значения которых​ Then sRes =​
​ я Вас правильно​ = sMergeStr &​ в том, что​ = «, «,​=Concat(B1:B6;»,»; 1/0;1/0; C1:C6;»=»;3;​
​ выполняет мой примитивный​ вещь, которая не​nerv​- добавить в​ замены этих символов,​
​ штат в столбце​ трудной ситуации, когда​ ячейки. После того,​

​ того, как координаты​​ 2-х ячеек​hands :D​ необходимо объединить в​ sRes & разделитель​
​ понял)?​​ sDELIM & rCell.Text​ теперь в качестве​ _ Optional ByVal​ D1:D6;»>=»;20; E1:E6;»=»;»text3″; …)​ макрос.​ нуждается в каких-либо​: т.е. я бы​ макрос операторы >​ например, на символ​F​ нужно сцепить две​ как все данные​ отобразились в окошке,​А3: =sss(A5:A304)​ строку. ‘ Разделитель​ & avData(lr, lc)​Если все на​ ‘собираем текст из​ аргументов можно задавать​
​ РазделительСтолбцов As String​ где 1/0 -​На самом деле​ комментариях.​
​ сделал так​ и < (есть​ ; будет выглядеть​
​, чтобы получилось как​
​ вещи, люди берут​ внесены, жмем на​ аналогичным образом поступаем​… нужно помнить,​ — необязательный аргумент.​ End If Next​ том же примере​ ячеек Next rCell​ не одиночные ячейки,​ = «; «)​ исключить/оставить повторы; выполнить/пропустить​
​ здорово бы сделать​Не тратьте на​ЦитатаZVI пишет:​ только =, >=,​
​ так:​ на рисунке ниже:​ в руки скотч.​ кнопку​
​ со вторым полем.​ что есть ограничения​yes​ ‘ Один или​ lr Next lc​ рассмотреть следующую формулу:​ Application.DisplayAlerts = False​ а целые диапазоны​

​ Dim i As​​ сортировку​ ConcatUniq() с сортировкой…​ это Ваше драгоценное​медленно все это​?​=ПОДСТАВИТЬ(G8;»»»:»»»;»;»)​При помощи функции​ Возможно, Вы сильно​«OK»​ Соответственно выделяем другую​ на длину текста​ несколько символов, которые​ If Len(sRes) Then​=СЦЕП(ЕСЛИ(—ЕОШ(ПОИСК(M1;A2:E2))=0;СТОЛБЕЦ(A:E);»X»))​
​ ‘отключаем стандартное предупреждение​ — текст из​ Long, n As​Это было бы​Но я уже​ время.​ будетосмелюсь предположить, что​- подрезать диапазон​В итоге, вставив результат​СЦЕПИТЬ​ удивитесь, но в​

excelworld.ru

Сцепить ячейки в несмежном (рваном) диапазоне

​.​​ ячейку. Подобную операцию​​ в одной ячейке​
​ будут вставлены между​ sRes = Mid(sRes,​Формула массивная и​ о потере текста​ всех ячеек всех​ Long, v() As​ просто пределом мечтаний!​
​ стесняюсь просить Вас​PS: Проверил новую версию.​ не значительно. Функция​ строк под UsedRange?​ формулы как значение,​Вы можете связывать​ Excel есть встроенная​Как видим, после этого​ проделываем, пока координаты​tankwar121​ каждым словом. ‘​
​ Len(разделитель) + 1)​​ дает результат 1XX45,​ .Merge Across:=False ‘объединяем​ диапазонов будет объединен​ Variant n =​
​ZVI​ об этом…​Время обработки на​ эвалится один раз.​- изменить синтаксис​ получим строку Вася;Петя;Даша;Маша.​ даже числа и​ функция, которая делает​ в целевой ячейке​ всех ячеек, которые​:​ По умолчанию пробел.​ End If If​ где 1,4 и​ ячейки Application.DisplayAlerts =​ в одно целое:​ Диапазон.Columns.Count: v =​: Сделал. Порядок аргументов​ZVI​ том же тестовом​ В дальнейшем вызывается​=Concat(B1:B6;»,»; C1:C6;»=»;3; D1:D6;»>=»;20;​Примечание​ текст. Давайте представим,​ то же самое.​ образовалась объединенная запись,​ нужно объединить, не​Step_UA​ ‘ БезПовторов —​ БезПовторов Then Dim​ 5 это «адреса»​ True .Item(1).Value =​Для массового объединения также​ Диапазон.Value ReDim s(1​ функции:​: Это не ограничение​ файле сократилось до​ с параметрами. Вместо​ E1:E6;»=»;»text3″) до вида​: В формуле для​ что мы используем​ Это функция​ включающая содержимое всех​ будут внесены в​,не работает, даже уменьшая​ необязательный аргумент. ‘​ oDict As Object,​ столбцов, при помощи​ Mid(sMergeStr, 1 +​ удобно использовать новую​ To n) As​1. Диапазон ячеек​ функции, а ограничение​ 0,06/ 0,05/ 0,04​.Language = «JScript»​ =Concat(B1:B6;»,»; C1:C6=3; D1:D6>=20;​ замены двойных кавычек​ Excel для хранения​CONCATENATE​ элементов, но с​ окно аргументов функции.​ количество ячеек​ Если указан как​ sTmpStr Set oDict​ которых через КодИНДЕКС​ Len(sDELIM)) ‘добавляем к​ функцию​ String For i​ (столбец или несколько​ Excel — в​ сек. (Excel 2007/10/13),​можно писать на​ E1:E6=»text3″) ?​ » использовано 2​ записей об инвентаризации​(СЦЕПИТЬ).​ пробелами между каждым​ После этого жмем​Step_UA​ ИСТИНА или 1​ = CreateObject(«Scripting.Dictionary») sTmpStr​ можно подтянуть нужные​ объед.ячейке суммарный текст​ОБЪЕДИНИТЬ (TEXTJOIN)​ = 1 To​ смежных), которые должны​ ячейке не может​ т.к. из 1.048.576​ «родном» vbs.​Спасибо!​ двойные кавычки «».​ магазина. Сейчас у​Функция​ словом.​ на кнопку​: Код в модуль​ — в результирующей​ = Split(sRes, разделитель)​ ячейки и далее​ End With End​, появившуюся начиная с​ n: s(i) =​ попасть в результат​ быть больше 32767​ строк заполнено лишь​ZVI​ZVI​Acid Burn​ нас есть​CONCATENATE​Внимание! Как видим, вышеуказанный​«OK»​ …​ строке будут значения​ On Error Resume​ аналогично цифрам «1XX45″​ Sub​ Excel 2016. У​ Join(Application.Transpose(Application.Index(v, , i)),​2. Разделитель результата​ символов. Если в​ 10.000.​: По п.1 это​: Не соглашусь, просто​:​25 яблок​(СЦЕПИТЬ) позволяет связать​ способ значительно ускоряет​.​Step_UA​ без дубликатов. ‘​ Next For lr​ через КодСЦЕПИТЬ сложить​Теперь, если выделить несколько​ нее следующий синтаксис:​ РазделительСтрок): Next СцепитьДиапазон​3. Признак уникальности:​ ячейках A1:A10000 значения​Нормально работает (не​ я забыл про​ сделайте «куда правильнее»​Привет, Планетяне!​(apples), но число​ два или более​ процедуру корректного объединения​Как видим, содержимое выбранных​: или процедурой Sub​ Для английской локализации​ = LBound(sTmpStr) To​ в одну ячейку.​ ячеек и запустить​=ОБЪЕДИНИТЬ(Разделитель; Пропускать_ли_пустые_ячейки; Диапазон1; Диапазон2​ = Join(s, РазделительСтолбцов)​ 0/1 = Все/Уникальные​ длиной не более​ пересчитывается и не​ «>» и «​ и выложите здесь​Я думаю, не​ «25» и слово​ куска текста в​ данных в ячейках.​ областей отразилось в​ SSS_() ‘ [a3]​ данный параметр указывается​ UBound(sTmpStr) oDict.Add sTmpStr(lr),​Вот только в​ этот макрос с​ … )​ End FunctionС уважением,​4. Признак сортировки:​ 2-х символов, то​ выдаёт ошибку) на​ По п.2 -​ZVI​ только мне, но​ «apples» хранятся в​

​ одной ячейке. Несмотря​​ Но следует учесть,​ одной предварительно указанной​ — результирующая ячейка​ как TRUE и​ sTmpStr(lr) Next lr​ эту же формулу​ помощью сочетания клавиш​где​ Аксима​ 0/1 = НеСортировать/Сортировать​ все сработает (3​ не активных листах​ добавил подрезку диапазонов.​: 1. Не понял​ и многим другим​ разных ячейках. Попробуем​ на длинное имя,​ что данный вариант​ ячейке. Но у​ ‘ [a5] -​ FALSE соответственно. ‘—————————————————————————————​ sRes = «»​ подсунуть КодИНДЕКС у​ Alt+F8 или кнопкой​Разделитель​Здравствуйте. Здорово Спасибо​5. Столбец №1​ символа на ячейку​ с другим UsedRange.​По п.3 -​ вопроса, все условия​ часто требуется сцепить​ связать их в​ она очень проста​ таит в себе​ данного способа имеется​ начальная ячейка [a3]​ Function СцепитьМного(диапазон As​ sTmpStr = oDict.Keys​ меня не получается.​Макросы​- символ, который​ огромное! Правда если​ ячеек, участвующих в​ с учетом одного​ Это просто фантастика!​ оставил из-за дат.​ итак считаются по​ диапазон ячеек в​ одной ячейке, чтобы​ в использовании и​ и «подводные камни».​ существенный недостаток. При​ = Join(WorksheetFunction.Transpose(Range([a5], Cells(Rows.Count,​ Range, Optional разделитель​ For lr =​Даже пробовал через​на вкладке Разработчик​ будет вставлен между​ ячейка пустая разделитель​ условии №1​ символа разделителя, итого​Всем рекомендую к применению!​Полноценные подсказки при​ И. Если в​ одну.​ получилось что-то вроде​ одинаково работает во​ Очень важно, чтобы​ его использовании происходит​ 1).End(xlUp)).Value), » «)​ As String =​ LBound(sTmpStr) To UBound(sTmpStr)​ КодДВССЫЛ, но результата​(Developer — Macros)​ фрагментами​ все равно ставится.Если​6. Оператор условия​ 30000 символов).​Ещё раз СПАСИБО ZVI​ вводе UDF в​ строке найдено первое​Стандартная функция Excel​ этого:​ всех версиях Excel,​ в элементе, который​ так называемая «склейка​ End Sub​ » «, Optional​ sRes = sRes​ так и не​

​, то Excel объединит​​Второй аргумент отвечает за​​ это вам не​ :) :idea:​ №1, может быть​С учетом этого,​ и с Наступающим​:D
​ ячейку не поддерживаются.​ несовпадение условия, то​ крайне неудобна, но​Нам понадобится связать три​ а также в​

​ содержит пробел, со​​ без шва». То​tankwar121​ БезПовторов As Boolean​ & IIf(sRes <>​ получил.​ выделенные ячейки в​ то, нужно ли​ нравится, то предлагаю​ одним из: «=»,​ Вы уверены, что​ всех!​При вводе с​ проверка в этой​ можно найти несколько​ элемента:​ других электронных таблицах,​
​ временем не появились​ есть, между словами​:​ = False) Dim​ «», разделитель, «»)​Ваше решение абсолютно​ одну, слив туда​

​ игнорировать пустые ячейки​​ такой вариант:​ «>», «=», «»​:)
​ правильно поступаете, накапливая​ZVI​ помощью мастера функций​ строке прекращается.​ UDF, отличающихся по:​F17​ например, в Google​ какие-то данные или​

planetaexcel.ru

Как сцепить большое количество ячеек?

​ нет пробела и​​Step_UA​ avData, lr As​ & sTmpStr(lr) Next​ верно решает задачу​

​ же и текст​​ (ИСТИНА или ЛОЖЬ)​Public Function СцепитьДиапазон2(ByVal​7. Значение условия​ все в одной​: Все же приведу​ можно добавить подсказки,​2. Пустые ячейки​- ресурсоёмкости и​
​(Number in stock)​
​ Sheets.​ он не был​ они склеены в​, Большущее спасибо! Все​

​ Long, lc As​​ lr End If​​, но хотелось​​ через пробелы.​Диапазон 1, 2, 3​

​ Диапазон As Range,​​ №1, с которым​ ячейке?​

​ код для сравнения​​ но для старых​ в данных пропускаются,​ рабочему диапазону (ActiveSheet​ — количество​Примечание:​ сдвинут.​ единый массив. При​ работает!​

​ Long, sRes As​​ СцепитьМного = sRes​​ минимизировать количество формул,​​Logotip​… — диапазоны​

CyberForum.ru

​ _ Optional ByVal​

Содержание

  1. Общая информация
  2. Описание и синтаксис функции СЦЕПИТЬ
  3. Вставка и настройка функции
  4. Функция СЦЕПИТЬ для большого количества ячеек
  5. Сцепить диапазон ячеек в Excel при помощи оператора & (амперсанд) вместо функции СЦЕПИТЬ
  6. Функции СЦЕПИТЬ / СЦЕП
  7. Обратная функция
  8. Аргументы функции
  9. Функция СЦЕПИТЬ в Excel, включая примеры
  10. Примеры
  11. Распространенные неполадки
  12. Рекомендации
  13. Макрос для объединения ячеек без потери текста.
  14. Дополнительная информация

Общая информация

Данная функция имеет один основной аргумент, а остальные являются дополнительными. Для корректной работы блоки необходимо разделять точкой с запятой. Формула имеет следующий вид:

В качестве составляющих могут выступать текстовые блоки, знаки препинания, числа, ссылки на ячейки, а также другие формулы. Обязательно заключайте текст в кавычки, иначе функция выдает ошибку #ИМЯ? и не работает. Для остальных форматов это не нужно.

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

На заметку! В последней версии редактора 2016 года данный инструмент на английском называется Concat.

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

Описание и синтаксис функции СЦЕПИТЬ

Данная функция начиная с Excel 2016 сменила название на “СЦЕП”, однако, для тех, кто привык к старому наименованию (“СЦЕПИТЬ”), оператор под этим названием также доступен в программе. СЦЕП и СЦЕПИТЬ абсолютно взаимозаменяемы и выполняют одну и ту же операцию по объединению содержимого выбранных ячеек в одну общую.

Формула функций выглядит так:

=СЦЕП(текст1;текст2;...) или =СЦЕПИТЬ(текст1;текст2;...)

Максимальное количество аргументов – 255.

Вставка и настройка функции

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

  1. Для начала определяемся с ячейкой, в которой планируем объединить данные из других. Переходим в нее (выделяем) и щелкаем по значку “Вставить функцию” (fx).
  2. В открывшемся окне вставки функции выбираем категорию “Текстовые” (или “Полный алфавитный перечень”), отмечаем строку “СЦЕП” (или “СЦЕПИТЬ”) и кликаем OK.
  3. На экране появится окно, в котором нужно заполнить аргументы функции, в качестве которых могут быть указаны как конкретные значения, так и ссылки на ячейки. Причем последние можно указать как вручную, так и просто кликнув по нужным ячейкам в самой таблице (при это курсор должен быть установлен в поле для ввода значения напротив соответствующего аргумента). В нашем случае делаем следующее:
    • находясь в поле “Текст1” щелкаем по ячейке (A2), значение которой будет стоять на первом месте в объединенной ячейке;
    • кликаем по полю “Текст2”, где ставим запятую и пробел (“, “), которые будут служит разделителем между содержимыми ячеек, указанных в аргументах “Текст1” и “Текст3” (появится сразу же после того, как мы приступим к заполнению аргумента “Текст2”). Можно на свое усмотрение указывать любые символы: пробел, знаки препинания, текстовые или числовые значения и т.д.
    • переходим в поле “Текст3” и кликаем по следующей ячейке, содержимое которой нужно добавить в общую ячейку (в нашем случае – это B2).
    • аналогичным образом заполняем все оставшиеся аргументы, после чего жмем кнопку OK. При этом увидеть предварительный результат можно в нижней левой части окна аргументов.
  4. Все готово, нам удалось объединить содержимое всех выбранных ячеек в одну общую.
  5. Выполнять действия выше для остальных ячеек столбца не нужно. Просто наводим указатель мыши на правый нижний угол ячейки с результатом, и, после того как он сменит вид на небольшой черный плюсик, зажав левую кнопку мыши тянем его вниз до нижней строки столбца (или до строки, для которой требуется выполнить аналогичные действия).
  6. Таким образом, получаем заполненный столбец с новыми наименованиями, включающими данные по размеру и полу.

Аргументы функции без разделителей

Если разделители между содержимыми ячеек не нужны, в этом случае в значении каждого аргумента сразу указываем адреса требуемых элементов.

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

Указание разделителя в отдельной ячейке

Вместо того, чтобы вручную указывать разделитель (пробел, запятая, любой другой символ, текст, число) в аргументах функции, его можно добавить в отдельную ячейку, и затем в аргументах просто ссылаться на нее.

Например, мы добавляем запятую и пробел (“, “) в ячейку B16.

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

Но здесь есть один нюанс. Чтобы при копировании формулы функции на другие ячейки не произошло нежелательного сдвига адреса ячейки с разделителем, ссылку на нее нужно сделать абсолютной. Для этого выделив адрес в поле соответствующего аргумента нажимаем кнопку F4. Напротив обозначений столбца и строки появятся символы “$”. После этого можно нажимать кнопку OK.

Визуально в ячейке результат никак не будет отличаться от полученного ранее.

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

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

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

Функция СЦЕПИТЬ для большого количества ячеек

Один из вариантов заключатся в том, чтобы в качестве ссылки на ячейки указать массив данных. Следует сразу отметить, что данные могут располагаться по горизонтали или вертикали. Если данные расположены в одной строке, то делаем следующее. Для примера, отдельные по ячейкам слова находится в 5-й строке. Теперь в пустой ячейке указываем весь диапазон для соединения и через амперсанд (&) добавляем пробел (» «).

Затем нажимаем F9, для того, чтобы формула выдала результат вычисления, в нашем случае это будет массив.

Как видно к каждому слову добавился пробел, а между словами стоит точка с запятой – как раз то, что нужно для вставки в формулу СЦЕПИТЬ. Теперь убираем лишние скобки и вставляем этот массив в формулу. Нажимаем Enter.

Данные могут быть расположены не по горизонтали, (как в примере выше), а по вертикали. В этом случае в получаемом массиве значения будут разделены двоеточием. Придется сделать один лишний шаг, чтобы заменить их на точку с запятой (через Найти и заменить, горячая клавиша Ctrl + H, либо еще быстрее — использовать функцию ТРАНСП, чтобы из горизонтального массива сделать вертикальный).

Этот вариант работает неплохо, но подходит для одноразового использования, т.к. исходная информация не связана с исходными ячейками. Для изменения придется лезть внутрь формулы или повторять действия для новых данных. Кроме того, существует ограничение по длине одной формулы, и соединить таким образом несколько тысяч ячеек не всегда получается.

Поэтому переходим к следующему способу. Он, признаться, выглядит не очень эстетично. Зато дешево, надежно, и практично! (с) Во всяком случае прием помогает решить проблему. А это самое главное. Нам потребуется один дополнительный столбец (или строка, смотря как расположены исходные данные для соединения).

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

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

Амперсанд — это своеобразный знак “+” для текстовых значений, которые нам нужно соединить. Найти амперсанд можно на клавиатуре, возле циферки “7”, ну по крайней мере, на большинстве клавиатур там он и находится. А если его нет, значит, внимательно посмотрите куда его перенесли. А так данный вариант похож, как и функция СЦЕПИТЬ, за исключением специфики орфографии и об этом не стоит забывать, так, к примеру, функция СЦЕПИТЬ сама ставит кавычки, а вот при использовании амперсанда вы прописываете их вручную. Но вот в возможности склеить значения в ячейках Excel по скорости, использование 2 варианта самое оптимальное.

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

Пример №1:

Нам надо сцепить текстовые значения, а именно ФИО сотрудников выгруженное с другой программы (зачастую выгруженные таблицы базы данных), но разбросанное в разных ячейках. Задача на первый взгляд легка, так оно, конечно, и есть, за исключением того, что нам надо фамилия и инициалы сотрудников, то есть сократить имя и по отчеству. И это можно сделать если использовать сочетание функций, а именно функция, которая, позволяет извлекать из текста первые буквы — функция ЛЕВСИМВ, в таком случае мы получим фамилию с инициалами в одной формуле.

Пример №2:

Нам надо сцепить разрозненную информацию о договорах его номер и дату заключения. К примеру, у нас есть “Договор на транспортные перевозки” “№23” “02.09.2015” и нам надо получить все данные одним предложением “Договор на транспортные перевозки №23 от 02.09.2015 года”. Но при использовании возможности сцепить диапазон ячеек с помощью функции СЦЕПИТЬ, мы не сможем получить нужный нам результат так будет произведена склейка текстовых значений, а нас есть дата. Соответственно, данные будут исковерканы. Для получения результата необходимо использовать дополнительно функцию ТЕКСТ. Она позволит, назначить для даты соответствующий формат «ДД.ММ.ГГГГ», соответственно формату мы получим данные двузначные для дней “ДД” и месяца “ММ” и четырёхзначное для года “ГГГГ”. Таким образом, мы сможем получить правильный конечный результат.

Функции СЦЕПИТЬ / СЦЕП

Второй способ – использование функции СЦЕПИТЬ. Она, по сути, имитирует работу оператора конкатенации, но от нас не требуется вводить его вручную. Части соединяемого текста нужно указать в качестве аргументов функции, например:

=СЦЕПИТЬ(A1;A2;A3)

=СЦЕПИТЬ(“До дедлайна осталось “;A1)

=СЦЕПИТЬ(A1;” “;A2)

Минус у данного способа тот же, что и у предыдущего – нужно вручную вводить разделители при необходимости. Кроме того, функция СЦЕПИТЬ требует указания каждой ячейки по отдельности. Ее наследница, функция СЦЕП, которая появилась в новых версиях Excel, умеет соединить весь текст в указанном диапазоне, что гораздо удобнее. Вместо того, чтобы кликать каждую ячейку, можно выделить сразу весь диапазон, например:

=СЦЕП(A1:B10)

Формула выше склеит последовательно текст из 20 ячеек диапазона A1:B10. Склеивание происходит в следующем порядке: слева направо до конца строки, а потом переход на следующую строку.

Кроме того, данную функцию можно использовать как формулу массива, передавая ей в качестве аргумента условие для соединения строк. Например, формула

={СЦЕП(ЕСЛИ(A2:A10=”ОК”;B2:B10;””))}

соединит между собой только те ячейки столбца B, рядом с которыми в столбце A указано “ОК”.

Обратная функция

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

  1. ЛЕВСИМВ отображает заданное количество символов с начала строки. Имеет два аргумента: ссылку на текст и количество знаков.
  2. ПРАВСИМВ то же самое только с конца строки. Блоки те же.
  3. ПСТР помогает отобразить знаки с указанной позиции. В составе имеет три аргумента: ссылка, позиция, количество символов.

Рассмотрим использование функций на основании первого примера из статьи:

Задача 1. Нужна только фамилия:

Задача 2. Аналогично, только необходимо имя:

Задача 3. В конце отобразим отчество:

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

Аргументы функции

  • text (текст1) – первое значение, которое вы хотите объединить с другим значением. Значение может быть текстом, буквой, цифрой, ссылкой на ячейку;
  • [text2], … ([текст2]) – значение, с которым вы хотите объединить аргумент text (текст1). Всего в одной функции можно использовать до 255 значений, суммарное число букв которых не может превышать более “8192”.

Функция СЦЕПИТЬ в Excel, включая примеры

​Смотрите также​​ function.xls​ хотите хранить на​”, в ячейке​Serge​(Number in stock)​ Вы живёте и​ более. Если необходимо,​ на длинное имя,​ из пробела, амперсанда​b4​ свыше 32767 символов (ограничение​ Excel 2016 при отсутствии​Функция ТЕКСТ преобразует числовое​ в строке результата​ С2. Результат: “Виталий​=СЦЕПИТЬ(В2;” “;C2)​Примечание:​в нем соответствие​ листе текст приветствия,​А2​

​: CONCATENATE​​ — количество​​ какой версией Excel​ чтобы в ячейке​ она очень проста​ и еще одного​a5​

​ для ячейки), функция​​ подписки на Office 365.​ значение в текст​ они будут отображаться​ Токарев”.​Имя аргумента​ Мы стараемся как можно​ формул на русском​ текущую дату и​формулу Code=СЕГОДНЯ()​Что значит “соответствие”?​» «​ пользуетесь.​

​ появились знаки пунктуации,​​ в использовании и​

​ пробела, и значение​

  • ​b5​ СЦЕП вернет ошибку​ Если у вас​

  • ​ и объединяет числа​

​ слитно. Добавьте пробелы​

​=СЦЕПИТЬ(С2;”, “;В2)​

​Описание​​ оперативнее обеспечивать вас​

​ – аглицким.​ пользоваться функцией​В английской версии:​Buhkalenok​– символ пробела​

​Вот и всё! Когда​​ пробелы или что-то​

​ одинаково работает во​ в ячейке C3.​a6​ #ЗНАЧ!.​

Примеры

​ есть подписка на​ с текстом или​ в формулу с​Объединяет текст в ячейке​текст1​ актуальными справочными материалами​Nikita12345​

​СЦЕПИТЬ()​

​Code​

​: Что значит “соответствие”?{/post}{/quote}​

​ в кавычках​

​ нажмете​

​ еще, добавьте их​

​ всех версиях Excel,​

​Fourth & Pine​

​b6​

​Скопируйте данные примеров из​

​ Office 365, убедитесь, что​ символами.​ функцией СЦЕПИТЬ. Это​

​ C2, строку, состоящую​ (обязательный)​ на вашем языке.​: Спасибо БОЛЬШОЕ!​, то есть альтернативное​=TODAY()​например,​

​F16​

​Enter​ в аргументы функции.​ а также в​=B3 & ” &​a7​

​ приведенных ниже таблиц​

​ у вас установлена​Например если в ячейке​ можно сделать двумя​ из запятой и​Первый элемент для объединения.​ Эта страница переведена​

​Вы меня очень​

​ решение – можно​В ячейке В2​Сцепить – CONCATENATE​(Product) – наименование​, появится полное имя:​В данном примере мы​ других электронных таблицах,​ ” & C3​

​b7​ и вставьте их​

​ последняя версия Office.​ A1 содержится номер​ способами.​ пробела, и значение​​ Это может быть​​ автоматически, поэтому ее​ выручили ;)​ использовать одну формулу,​

Распространенные неполадки

​ применяем формулу Code=СЦЕПИТЬ(A1;A2)​

​ВПР – VLOOKUP​

​Введите вот такую формулу​Josephine Carter​

​ хотим, чтобы между​ например, в Google​Объединяет те же элементы,​Результат:​ в ячейку A1​Функция СЦЕП объединяет текст​ 23,5, чтобы отформатировать​Добавьте двойные кавычки с​ в ячейке B2.​

​ текстовое значение, число​ текст может содержать​

​С меня виртуальное​ в которой одновременно​

​В английской версии:​Buhkalenok​ в ячейке​.​ именами стоял пробел​ Sheets.​ что и в​a1b1a2b2a4b4a5b5a6b6a7b7​ нового листа Excel.​

  • ​ из нескольких диапазонов​ числа в виде​ пробелом между ними​ Результат: “Виталий Токарев”.​ или ссылка на​

  • ​ неточности и грамматические​​ пиво :)​​ как константа хранится​Code​: Спасибо​E19​

​Теперь, потянув мышью за​ (чтобы не получалось​

​Примечание:​ предыдущем примере, но​​Пример 3​​ Чтобы отобразить результаты​ или строк, но​

Рекомендации

​ денежное значение можно​

​ (” “). Например:​

​=СЦЕПИТЬ(B3;” & “;C3)​ ячейку.​

​ ошибки. Для нас​Еще раз БОЛЬШОЕ​ текст приветствия, работает​=CONCATENATE(A1,A2)​

​Serge​:​ маркер автозаполнения, скопируйте​ что-то вроде –​Если Вы никогда​ с помощью оператора​Данные​ формул, выделите их​ не добавляет разделитель​

​ использовать следующую формулу:​ =СЦЕПИТЬ(“Привет,”; ” “;​

​Объединяет строку в ячейке​текст2,…​ важно, чтобы эта​

​ спасибо хорошим людишкам​ функция СЕГОДНЯ(), переводится​Но результат получается​: C:Program FilesMicrosoft OfficeOffice121049​=CONCATENATE(F17,” “,F16)​

​ формулу во все​JosephineCarter​ прежде не использовали​&​Имя​ и нажмите клавишу​

​ или аргументы IgnoreEmpty.​

​=ТЕКСТ(A1;”0,00 ₽”)​

Макрос для объединения ячеек без потери текста.

Имеем текст в нескольких ячейках и желание – объединить эти ячейки в одну, слив туда же их текст. Проблема в одном – кнопка Объединить и поместить в центре (Merge and Center) в Excel объединять-то ячейки умеет, а вот с текстом сложность – в живых остается только текст из верхней левой ячейки.

Чтобы объединение ячеек происходило с объединением текста (как в таблицах Word) придется использовать макрос. Для этого откройте редактор Visual Basic на вкладке Разработчик – Visual Basic (Developer – 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 

Теперь, если выделить несколько ячеек и запустить этот макрос с помощью сочетания клавиш Alt+F8 или кнопкой Макросы на вкладке Разработчик (Developer – Macros), то Excel объединит выделенные ячейки в одну, слив туда же и текст через пробелы.

Дополнительная информация

  • С помощью функции вы можете объединить максимум 255 строчек;
  • Для сцепки вы можете использовать текст, ссылки на ячейки, числа или комбинацию этих значений.

Источники

  • https://mir-tehnologiy.ru/funktsiya-stsepit-v-excel/
  • https://MicroExcel.ru/funkcziya-sczepit/
  • https://statanaliz.info/excel/funktsii-i-formuly/funktsiya-stsepit-concatenate/
  • https://topexcel.ru/kak-ispolzuetsya-funkciya-scepit-v-excel/
  • https://zen.yandex.ru/media/id/59affb7afd96b11e8eadd771/5aa8c1117ddde8748c525008
  • https://excelhack.ru/funkciya-concatenate-scepit-v-excel/
  • https://my-excel.ru/excel/excel-scepit-po-anglijski.html
  • https://www.planetaexcel.ru/techniques/7/89/

Содержание

  • СЦЕПИТЬ диапазон Excel (без разделителя)
  • СЦЕПИТЬ диапазоны Excel (с разделителем)
  • СЦЕПИТЬ диапазоны Excel (с помощью VBA)
  • СВЯЗАТЬ диапазоны Excel с помощью функции TEXTJOIN (доступно в Excel с подпиской на Office 365)

В Excel есть два способа объединить содержимое нескольких ячеек:

  • Функция СЦЕПИТЬ в Excel (или оператор амперсанда (&))
  • Функция Excel TEXTJOIN (новая функция в Excel, если у вас есть Office 365)

Если вы используете Excel с подпиской на Office 365, я предлагаю вам нажать здесь, чтобы перейти к той части, где рассматривается функция TEXTJOIN. Если вы не используете Office 365, продолжайте читать.

В своей базовой форме функция СЦЕПИТЬ может объединять 2 или более символов строк.

Например:

  • = CONCATENATE («Хорошо», «Утро») даст вам результат GoodMorning.
  • = СЦЕПИТЬ («Хорошо», «,« Доброе утро ») даст вам результат« Доброе утро ».
  • = CONCATENATE (A1 & A2) даст вам результат GoodMorning (где A1 содержит текст «Good», а A2 — текст «Morning».

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

Например, в приведенном выше примере, хотя используется формула = СЦЕПИТЬ (A1: A5), результат показывает только «Сегодня» и не объединяет все ячейки.

В этом уроке я покажу вам, как объединить несколько ячеек с помощью функции СЦЕПИТЬ.

Примечание. Если вы используете Excel 2016, вы можете использовать функцию TEXTJOIN, которая создана для объединения нескольких ячеек с помощью разделителя.

Вот шаги для объединения диапазона Excel без разделителя (как показано на рисунке):

  1. Выделите ячейку, в которой вам нужен результат.
  2. Перейдите в строку формул и введите = TRANSPOSE (A1: A5).
    • В зависимости от ваших региональных настроек вы также можете попробовать = A1: A5 (вместо = TRANSPOSE (A1: A5))
  3. Выделите всю формулу и нажмите F9 (это преобразует формулу в значения).
  4. Снимите фигурные скобки с обоих концов.
  5. Добавьте = СЦЕПИТЬ (в начало текста и закройте его круглой скобкой).
  6. Нажмите Ввод.

Это приведет к объединению диапазона ячеек в одну ячейку (как показано на изображении выше). Обратите внимание: поскольку мы используем любой разделитель (например, запятую или пробел), все слова объединяются без разделителя.

СЦЕПИТЬ диапазоны Excel (с разделителем)

Вот шаги, чтобы объединить диапазон Excel с пробелом в качестве разделителя (как показано на рисунке):

  1. Выделите ячейку, в которой вам нужен результат.
  2. Перейдите в строку формул и введите = TRANSPOSE (A1: A5) & ”“
    • В зависимости от ваших региональных настроек вы также можете попробовать = A1: A5 (вместо = TRANSPOSE (A1: A5)).
  3. Выделите всю формулу и нажмите F9 (это преобразует формулу в значения).
  4. Снимите фигурные скобки с обоих концов.
  5. Добавьте = СЦЕПИТЬ (в начало текста и закройте его круглой скобкой).
  6. нажмите Ввод

Обратите внимание, что в этом случае я использовал пробел в качестве разделителя (разделителя). При желании можно использовать другие разделители, например запятую или дефис.

СЦЕПИТЬ диапазоны Excel (с помощью VBA)

Ниже приведен пример настраиваемой функции, которую я создал с помощью VBA (я назвал ее CONCATENATEMULTIPLE), которая позволит вам объединить несколько ячеек, а также указать разделитель / разделитель.

Вот код VBA, который создаст эту настраиваемую функцию для объединения нескольких ячеек:

Функция CONCATENATEMULTIPLE (Ref As Range, Separator As String) As String Dim Cell As Range Dim Result As String For each Cell In Ref Result = Result & Cell.Value & Separator Next Cell CONCATENATEMULTIPLE = Left (Result, Len (Result) - 1) Конечная функция

Вот шаги, чтобы скопировать этот код в Excel:

Щелкните здесь, чтобы загрузить файл примера.

Теперь вы можете использовать эту функцию как любую обычную функцию рабочего листа в Excel.

СВЯЗАТЬ диапазоны Excel с помощью функции TEXTJOIN (доступно в Excel с подпиской на Office 365)

В Excel, который поставляется с Office 365, была представлена ​​новая функция — TEXTJOIN.

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

Вот синтаксис функции:

TEXTJOIN (разделитель, ignore_empty, text1, [text2],…)

  • delimiter — здесь можно указать разделитель (разделитель текста). Вы можете ввести это вручную или использовать ссылку на ячейку с разделителем.
  • ignore_empty — если это ИСТИНА, пустые ячейки будут игнорироваться.
  • text1 — это текст, который нужно соединить. Это может быть текстовая строка или массив строк, например диапазон ячеек.
  • [text2] — это необязательный аргумент, в котором вы можете указать до 252 аргументов, которые могут быть текстовыми строками или диапазонами ячеек.

Вот пример того, как работает функция TEXTJOIN:

В приведенном выше примере в качестве разделителя указан пробел, который объединяет текстовые строки в формате A1: A5.

Вы можете узнать больше о функции TEXTJOIN здесь.

Сталкивались ли вы с ситуациями, когда это может быть полезно? Я хотел бы поучиться у вас. Оставляйте свои следы в комментариях!

Вы поможете развитию сайта, поделившись страницей с друзьями

Чтобы объединить значения (текстовые, цифровые) из разных ячеек в одну, используется функция СЦЕПИТЬ. Ее аналог – & (амперсанд). Знак справляется с простейшими задачами. Но для объединения множества строк не подходит.

Синтаксис функции СЦЕПИТЬ

Функция входит в группу «текстовые». Синтаксис: (текст 1; текст 2;…). Можно включить до 255 текстовых строк. Первый аргумент – «текст 1» – является обязательным. Любые аргументы можно указать в виде текста, цифр или ссылок на ячейки.

Общие правила использования функции СЦЕПИТЬ:

  1. Для разделения аргументов применяется точка с запятой. Пропуск или использование других знаков приведет к отображению в ячейке с результатом кавычек.
  2. Текстовые аргументы обязательно заключать в кавычки. В противном случае появляется ошибка – #ИМЯ? Числа и ссылки на ячейки – не нужно.
  3. Чтобы соединяемые элементы в строке результата отобразились с пробелом, пробелы нужно добавлять в формулу с функцией. С помощью двойных кавычек с пробелом внутри (“ “) или с помощью пробела после текстового аргумента (“Иванов ”;…).



Как пользоваться функцией СЦЕПИТЬ в Excel

Начнем с простейших примеров.

Данные для объединения:

Данные для объединения.

Ставим курсор в ячейку Е2 и вызываем мастер функций (кнопка fx). В категории «Текстовые» находим функцию СЦЕПИТЬ. Аргументы – ссылки на ячейки А2, В2, С2 и пробелы:

СЦЕПИТЬ.

Результат объединения значений в ячейках:

Результат.

Такой же результат получим с помощью амперсанда:

Результат 1.

Один из аргументов – текст. Формула: =СЦЕПИТЬ(«слесарь»; » «;A2;» «;B2;» «;C2). Результат:

Результат 2.

И с более сложными задачами справится функция СЦЕПИТЬ в Excel. Примеры:

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

    Второй аргумент функции ТЕКСТ – формат представления даты. Результат:

  2. Результат 3.

  3. Соединим сразу много ячеек в строке. Если писать формулу с функцией СЦЕПИТЬ, получится долго и малоэффективно. Используем маленькую хитрость. Вот наша строка со значениями в отдельных ячейках.
    В ячейку Н1 ставим знак «равно». Выделяем диапазон со значениями А1:F1. Вводим амперсанд & и пробел “ “. Жмем F9. В строке формул появится формула массива.
    Ставим курсор в строку формул после знака «равно». Пишем название функции. Фигурные скобки заменяем на круглые и жмем ВВОД. Получаем нужный результат.
  4. Результат 4.

  5. Соединим значения через косую черточку («-», «&» и т.п.). Формула будет выглядеть так: = СЦЕПИТЬ (ссылка на ячейку 1; «/»; ссылка на ячейку 2).
  6. Результат 5.

  7. Соединим несколько значений в столбце. Функция подходит для значений в строках. Описанный выше способ с формулой массива тоже не сработает.

Результат 6.

Преобразуем вертикальный диапазон в горизонтальный с помощью функции ТРАНСП. А затем воспользуемся формулой массива для быстрого соединения значений. В ячейку В1 ставим знак «равно». Пишем ТРАНСП. Указываем диапазон А1:А6. Вводим & и пробел (« »). Жмем F9.

ТРАНСП.

Теперь преобразуем формулу массива, добавив функцию и заменив скобки.

Формула массива.

Обратная функция СЦЕПИТЬ в Excel

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

  • ЛЕВСИМВ (отображает заданную часть символов с начала строки);
  • ПРАВСИМВ (отображает заданную часть символов с конца строки);
  • ПСТР (отображает указанную часть символов, начиная с заданной позиции) и другие.

Примеры:

  1. Извлечем первое слово из строки, применив функцию ЛЕВСИМВ. Аргументы – «текст» (ссылка на строку с искомым значением), «количество знаков» (число символов, которые нужно извлечь).
  2. ЛЕВСИМВ.

  3. Извлечем последнее слово из строки с помощью функции ПРАВСИМВ. Синтаксис похожий (как в предыдущем примере). Только количество знаков считается с конца.
  4. ПРАВСИМВ.

  5. Извлечем из записи в строке фамилию (второе слово) с помощью функции ПСТР. Аргументы – «текст» (ссылка на строку), «начальная позиция» (номер символа, с которого программа начнет считать число знаков); «количество знаков». В примере: Е2 – «текст», с 9 знака функция вернет 8 символов.

ПСТР.

Для выполнения более сложных задач используются более сложные формулы, составляются пользовательские функции.

Понравилась статья? Поделить с друзьями:
  • Excel функция суммы пропись
  • Excel функция суммпроизв на английском
  • Excel функция суммирования по условию
  • Excel функция сумма платежа
  • Excel функция сумма если не равно