Хитрости »
5 Август 2013 151117 просмотров
Сцепить много ячеек с указанным разделителем
Часто бывает ситуация, когда необходимо из трех разных столбцов сцепить данные в одну строку с разделителем. Допустим в А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) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций(Shift+F3), отыскав её в категории Определенные пользователем (User Defined Functions).
Синтаксис функции:
=СцепитьМного(A2:A100;», «;ИСТИНА)
Диапазон — диапазон ячеек, значения которых необходимо объединить в строку.
Разделитель — необязательный аргумент. Один или несколько символов, которые будут вставлены между каждым словом. По умолчанию пробел.
БезПовторов — необязательный аргумент. Если указан как ИСТИНА или 1 — в результирующей строке будут значения без дубликатов. Например, из значений Сидоров, Петров, Сидоров, Иванов в результат попадут только Сидоров, Петров, Иванов. Если ЛОЖЬ или 0 — будут выведены все значения. Для английской локализации данный параметр указывается как TRUE и FALSE соответственно.
Скачать пример
СцепитьМного.xls (52,5 KiB, 11 993 скачиваний)
Если необходимо объединять значения ячеек из «рваных»(несмежных) диапазонов(выделенных через 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
ссылки
статистика
Надпись на заборе: «Катя + Миша + Семён + Юра + Дмитрий Васильевич +
товарищ Никитин + рыжий сантехник + Витенька + телемастер Жора +
сволочь Редулов + не вспомнить имени, длинноволосый такой +
ещё 19 мужиков + муж = любовь!»
Способ 1. Функции СЦЕПИТЬ, СЦЕП и ОБЪЕДИНИТЬ
В категории Текстовые есть функция СЦЕПИТЬ (CONCATENATE), которая соединяет содержимое нескольких ячеек (до 255) в одно целое, позволяя комбинировать их с произвольным текстом. Например, вот так:
Нюанс: не забудьте о пробелах между словами — их надо прописывать как отдельные аргументы и заключать в скобки, ибо текст.
Очевидно, что если нужно собрать много фрагментов, то использовать эту функцию уже не очень удобно, т.к. придется прописывать ссылки на каждую ячейку-фрагмент по отдельности. Поэтому, начиная с 2016 версии Excel, на замену функции СЦЕПИТЬ пришла ее более совершенная версия с похожим названием и тем же синтаксисом — функция СЦЕП (CONCAT). Ее принципиальное отличие в том, что теперь в качестве аргументов можно задавать не одиночные ячейки, а целые диапазоны — текст из всех ячеек всех диапазонов будет объединен в одно целое:
Для массового объединения также удобно использовать новую функцию ОБЪЕДИНИТЬ (TEXTJOIN), появившуюся начиная с Excel 2016. У нее следующий синтаксис:
=ОБЪЕДИНИТЬ(Разделитель; Пропускать_ли_пустые_ячейки; Диапазон1; Диапазон2 … )
где
- Разделитель — символ, который будет вставлен между фрагментами
- Второй аргумент отвечает за то, нужно ли игнорировать пустые ячейки (ИСТИНА или ЛОЖЬ)
- Диапазон 1, 2, 3 … — диапазоны ячеек, содержимое которых хотим склеить
Например:
Способ 2. Символ для склеивания текста (&)
Это универсальный и компактный способ сцепки, работающий абсолютно во всех версиях Excel.
Для суммирования содержимого нескольких ячеек используют знак плюс «+«, а для склеивания содержимого ячеек используют знак «&» (расположен на большинстве клавиатур на цифре «7»). При его использовании необходимо помнить, что:
- Этот символ надо ставить в каждой точке соединения, т.е. на всех «стыках» текстовых строк также, как вы ставите несколько плюсов при сложении нескольких чисел (2+8+6+4+8)
- Если нужно приклеить произвольный текст (даже если это всего лишь точка или пробел, не говоря уж о целом слове), то этот текст надо заключать в кавычки. В предыдущем примере с функцией СЦЕПИТЬ о кавычках заботится сам Excel — в этом же случае их надо ставить вручную.
Вот, например, как можно собрать ФИО в одну ячейку из трех с добавлением пробелов:
Если сочетать это с функцией извлечения из текста первых букв — ЛЕВСИМВ (LEFT), то можно получить фамилию с инициалами одной формулой:
Способ 3. Макрос для объединения ячеек без потери текста.
Имеем текст в нескольких ячейках и желание — объединить эти ячейки в одну, слив туда же их текст. Проблема в одном — кнопка Объединить и поместить в центре (Merge and Center) в Excel объединять-то ячейки умеет, а вот с текстом сложность — в живых остается только текст из верхней левой ячейки.
Чтобы объединение ячеек происходило с объединением текста (как в таблицах Word) придется использовать макрос. Для этого откройте редактор Visual Basic на вкладке Разработчик — Visual Basic (Developer — Visual Basic) или сочетанием клавиш Alt+F11, вставим в нашу книгу новый программный модуль (меню Insert — Module) и скопируем туда текст такого простого макроса:
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 объединит выделенные ячейки в одну, слив туда же и текст через пробелы.
Ссылки по теме
- Делим текст на куски
- Объединение нескольких ячеек в одну с сохранением текста с помощью надстройки PLEX
- Что такое макросы, как их использовать, куда вставлять код макроса на VBA
Объединение диапазона ячеек в одну или построчно с помощью кода VBA Excel. Метод Range.Merge и свойство MergeCells. Отмена объединения ячеек. Примеры.
Метод Range.Merge
Метод Merge объекта Range объединяет ячейки заданного диапазона в одну или построчно из кода VBA Excel.
Синтаксис метода:
- Expression — выражение, возвращающее объект Range.
- Across — логическое значение, определяющее характер объединения ячеек:
- True — ячейки объединяются построчно: каждая строка заданного диапазона преобразуется в одну ячейку.
- False — весь диапазон преобразуется в одну ячейку. False является значением по умолчанию.
Преимущество метода Range.Merge перед свойством MergeCells заключается в возможности построчного объединения ячеек заданного диапазона без использования цикла.
Свойство MergeCells
Свойство MergeCells объекта Range применяется как для объединения ячеек, так и для его отмены.
Синтаксис свойства с присвоением значения:
Expression.MergeCells = Boolean |
- Expression — выражение, представляющее объект Range.
- Boolean — логическое значение, определяющее необходимость объединения ячеек или его отмены:
- True — объединение ячеек заданного диапазона.
- False — отмена объединения ячеек.
С помощью свойства MergeCells можно из кода VBA Excel проверять диапазон (отдельную ячейку), входит ли он (она) в объединенную ячейку (True) или нет (False). Если проверяемый диапазон окажется комбинированным, то есть содержащим объединенные и необъединенные ячейки, компилятор сгенерирует ошибку.
Переменная Expression для отмены объединения ячеек с помощью свойства Range.MergeCells может представлять одну любую ячейку, входящую в объединенный диапазон.
Метод Range.UnMerge
Метод UnMerge объекта Range разделяет объединенную область на отдельные ячейки из кода VBA Excel.
Синтаксис метода:
Expression — выражение, возвращающее объект Range.
Переменная Expression для отмены объединения ячеек методом UnMerge может представлять одну любую ячейку, входящую в объединенный диапазон.
Примеры объединения ячеек и его отмены
Пример 1
Наблюдаем, как происходит объединение ячеек при разных значениях параметра Across:
Sub Primer1() ‘Объединяем ячейки диапазона «A1:D4» построчно Range(«A1:D4»).Merge (True) ‘Объединяем диапазон «A5:D8» в одну ячейку ‘Across принимает значение False по умолчанию Range(«A5:D8»).Merge End Sub |
Не забываем, что логическое выражение True можно заменить единичкой, а False — нулем.
Пример 2
Отменяем объединение ячеек в диапазонах из первого примера:
Sub Primer2() Range(«A1:D8»).MergeCells = False End Sub |
Пример 3
Предполагается, что перед этим примером отменено объединение ячеек кодом из предыдущего примера.
Sub Primer3() ‘Объединяем ячейки диапазона «A1:D4» Range(«A1:D4»).MergeCells = 1 ‘Проверяем принадлежность диапазона ‘объединенной ячейке* MsgBox Range(«A1:C2»).MergeCells MsgBox Range(«A6:C7»).MergeCells ‘Ячейки диапазона «A5:D8» ‘можно объединить и так Cells(5, 1).Resize(4, 4).Merge End Sub |
*Если проверяемый диапазон окажется комбинированным, VBA Excel сгенерирует ошибку.
Пример 4
Отмена объединения ячеек с помощью метода Range.UnMerge:
Sub Primer4() ‘Объединяем ячейки диапазона «A1:C4» Range(«A1:C4»).Merge MsgBox «Ячейки диапазона ««A1:C4»» объединены» ‘Смотрим адрес диапазона, входящего в объединенную ячейку MsgBox Range(«A2»).MergeArea.Address ‘Отменяем объединение ячеек диапазона «A1:C4» Range(«B3»).UnMerge ‘или: Range(«B3»).MergeArea.UnMerge MsgBox «Объединение ячеек диапазона ««A1:C4»» отменено» End Sub |
Предупреждение перед объединением
Если объединяемые ячейки не являются пустыми, пред их объединением появится предупреждающее диалоговое окно с сообщением: «В объединенной ячейке сохраняется только значение из верхней левой ячейки диапазона. Остальные значения будут потеряны.»
Пример 5
Наблюдаем появление предупреждающего окна:
Sub Primer5() ‘Отменяем объединение ячеек в диапазоне «A1:D4» Range(«A1:D4»).MergeCells = 0 ‘Заполняем ячейки диапазона текстом Range(«A1:D4») = «Ячейка не пустая» ‘Объединяем ячейки диапазона «A1:D4» Range(«A1:D4»).MergeCells = 1 ‘Наблюдаем предупреждающее диалоговое окно End Sub |
Чтобы избежать появление предупреждающего окна, следует использовать свойство Application.DisplayAlerts, с помощью которого можно отказаться от показа диалоговых окон при работе кода VBA Excel.
Пример 6
Sub Primer6() ‘Отменяем объединение ячеек в диапазоне «A5:D8» Range(«A5:D8»).MergeCells = 0 ‘Заполняем ячейки диапазона «A5:D8» текстом Range(«A5:D8») = «Ячейка не пустая» Application.DisplayAlerts = False Range(«A5:D8»).MergeCells = 1 Application.DisplayAlerts = True End Sub |
Теперь все прошло без появления диалогового окна. Главное, не забывать после объединения ячеек возвращать свойству Application.DisplayAlerts значение True.
Кстати, если во время работы VBA Excel предупреждающее окно не показывается, это не означает, что оно игнорируется. Просто программа самостоятельно принимает к действию ответное значение диалогового окна по умолчанию.
0 / 0 / 0
Регистрация: 26.10.2019
Сообщений: 4
1
Excel
Объединение текста из нескольких ячеек в одну ячейке, по всей таблице
26.10.2019, 16:38. Показов 13170. Ответов 9
Есть большая таблица с которой требуется проводить разные манипуляции такие как сортировка и объединение, но для этого ее надо привести к нормальному виду. В таблице есть столбцы разбитые на 1-9 строк. Проблема со столбиком «пояснение» — надо текст с разных ячеек объединить и записать в первую ячейку строчки. Т.е. для определения ячеек с которых надо объединить текст в одну ячейку берем столбец «Дата» или «№п/п» находим запись и считаем пустые строчки до следующего значения. И так надо пройтись по всей таблице.
№ п/п | Дата | сумма | сумма | пояснение |
344 | 20/04/2011 | 20,00 | 0,00 | Комиссия по услуге: |
«Перечисление средств (руб) в | ||||
др.банк(ЭД)», согласно | ||||
договора, с док-та № 92 за | ||||
20/04/2011 от суммы 300000 | ||||
RUR. НДС не облагается. | ||||
345 | 20/04/2011 | 20,00 | 0,00 | Комиссия по услуге: |
«Перечисление средств (руб) в | ||||
др.банк(ЭД)», согласно | ||||
договора, с док-та № 95 за | ||||
20/04/2011 от суммы 54000 RUR. | ||||
НДС не облагается. |
На форумах нашел два макроса, но не хватает познаний объединить их в один.
Один макрос объединяет текст из выделенных ячеек в одну, но требуется каждый раз выделять самому нужные ячейки.
Visual Basic | ||
|
второй макрос применяется ко всему документу, но когда указываю нужные для меня столбцы, пишется сообщение, что «Объединение ячеек приведет к потере всех значений, кроме левого верхнего»
Visual Basic | ||
|
Подскажите как его довести до ума. Спс
0
Объединение текста из двух или нескольких ячеек в одну
Смотрите такжеЗдесь либо макрос, Фамилия+Имя+Отчество+Серия+Номер данные ребенка повторялосьПолная версия модифицированного кода
Объединение данных с помощью символа «амперсанд» (&)
-
одновременно для несколькихТеперь если нам нужно показателей с распределением
-
чтобы расцепить только фамилию=СЦЕПИТЬ(A2;» «;B2), котораяИмя – ячейки вС помощью оператора &
-
ПроблемаFourthВажно:Ячейку, которая не была
-
автоматически, поэтому ееДанные из нескольких ячеек либо UDFMichael_S 1 раз, и макроса:
Объединение данных с помощью функции СЦЕП
-
выделенных строк. одновременно объединять диапазоны по кварталам.
-
– формула: =ПРАВСИМВ(C4;ПОИСК(« объединяет текстовые значения этой колонке содержат
-
можно объединять текстовыеОписание
Pine В Excel 2016, Excel Mobile создана путем объединения, текст может содержать можно объединить в
-
Nic70y: Вот если названия в нужном столбцеSub JoinEmpty() кварталов, чтобы избавиться
support.office.com
Объединение и отмена объединения ячеек
Нам необходимо объединить ячейки «;C4;1)+1) в одну строку. текстовые данные полученные элементы, не прибегаяКавычки отображаются в строке32 и Excel Online невозможно разделить. Если неточности и грамматические одну с помощью: вот это уточните листов и предметов (с предметом) стоялаDim i AsЧто если в нашей от пустых ячеек, на первой строкеФактически функция СЦЕПИТЬ устарела, Однако на практике из базы картотек
к функции. результата.Формула эта функция заменена вы ищете сведения ошибки. Для нас
Объединение ячеек
-
символа «амперсанд» (&)
-
и желательно в в первой строке оценка. Пример прикрепляю.
Long таблице потребуется выполнить выделите диапазон B1:L2. таким образом, чтобы но все еще мы не рекомендуем кадрового отдела.Например, =A1 & B1Используйте точку с запятойОписание функцией СЦЕП. Функция о том, как важно, чтобы эта
Отмена объединения ячеек
-
или функции СЦЕП. файле (пару листов сделать одинаковыми, тоЯ пробовал свестиDim j As
-
аналогичное объединение пустых После чего запустите
ячейка с названием доступна пользователям в
-
использовать функцию СЦЕПИТЬ,Фамилия – в данном возвращает то же для разделения текстовых=СЦЕПИТЬ(«Популяция рек для «;A2;» СЦЕПИТЬ пока еще распределить данные из статья была вамВыделите ячейку, в которую достаточно) и как
-
можно так все данные в Long ячеек сразу в макрос: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«JoinEmpty»-«Выполнить». Ячейки квартала была объединена новых версиях программы а в место столбце находиться только
support.office.com
Функция СЦЕПИТЬ в Excel, включая примеры
значение, что и элементов. Например: Excel «;A3;» составляет «;A4;» доступна для обратной ячейки по нескольким полезна. Просим вас вы хотите вставить должен выглядеть результат.или макросом одну таблицу иFor j = нескольких строках – объединяться в соответствии с пустыми ячейками Excel. нее просто применять фамилии сотрудников. =CONCATENATE(A1,B1). Во многих отобразит результат функции на километр.») совместимости, однако рекомендуем
ячейкам, см. статью уделить пару секунд объединенные данные.FleirosNic70y сделать сводную таблицу, 1 To Selection.Rows.Count
одновременно? Для этого с продолжительностью каждого находящиеся справа отМакросы незаменимы при форматировании в формулах операторВ третьем столбце «Имя случаях воспользоваться оператором =СЦЕПИТЬ («Привет, «»мир!»)Создает предложение, объединяя данные использовать вместо нее Распределение содержимого ячейки и сообщить, помоглаВведите = (знак равенства)
: Спасибо большое за: Тот же принцип
но она у
-
For i = нужно добавить несколько квартала, как на
-
нее. И так
и изменении структуры |
&, так как |
+ Фамилия» необходимо амперсанда проще и |
как «Привет,»мир!» с в столбце А функцию СЦЕП. В на соседние столбцы. ли она вам, |
и выберите первую терпение. Прикрепляю файл |
200?’200px’:»+(this.scrollHeight+5)+’px’);»>ДВССЫЛ меня не получилась 1 To Selection.Columns.Count строк в код |
Примеры
рисунке: для каждого названия в больших таблицах она имеет ряд объединить имя и быстрее, чем создавать лишней кавычкой, так
с остальным текстом. |
||
последующих версиях Excel |
Ячейку, полученную путем объединения, |
с помощью кнопок |
ячейку, которую нужно |
с исходными данными |
Fleiros |
в нужном виде. |
||
If Selection.Cells(j, i) |
нашего макроса. Но |
|
В данном коде цикл квартала. Excel. В данном |
своих недостатков. фамилию каждого сотрудника строки с помощью как пропущена запятая Результат: «Популяция рек функция СЦЕПИТЬ может можно снова разделить |
|
внизу страницы. Для |
объединить. и желаемым результатом.: Спасибо. Какой то хаос = «» Then |
|
сначала подготовим исходную |
проходит по всемВыделение отдельных групп ячеек примере мы рассмотрим, для последующего использования функции СЦЕПИТЬ. |
|
между текстовыми аргументами. |
для вида речная быть недоступна. на отдельные ячейки. удобства также приводимВведите символP.S. по поводуЯ к сожалению из кучи «вложений» |
|
ActiveSheet.Range(Selection.Cells(j, i - таблицу. |
ячейкам первой строки вручную может потребовать как с помощью3 главных недостатка функции в сводных таблицахСм. дополнительные сведения обЧисла не нужно заключать форель составляет 32 |
Распространенные неполадки
Синтаксис: |
Если вы не |
ссылку на оригинал& |
количества оценок имеется неверно сформулировал вопрос вышел. К сожалению 1), Selection.Cells(j, i)).MergeДопустим нам для последних выделенного диапазона, слева много времени и макроса можно быстро СЦЕПИТЬ по сравнению и отчетах, сформированных использовании операторов вычислений. |
в кавычки. на километр». |
СЦЕПИТЬ(текст1;[текст2];…) помните, где находятся (на английском языке).и пробел, заключенный ввиду то, что изначально, не разобрался какEnd If трех отделов необходимо
|
в кавычки. у одного может |
UPD: Дети не со сводными таблицамиNext разбить данные на каждая из них |
Рекомендации
обработке несколько таких |
все пустые ячейки |
Ограниченное максимальное количество объединяемыхДля этого необходимо попарно |
строк используйте функцию к другу.Объединяет строку в ячейке=СЦЕПИТЬ(«Популяция рек для «;A2;» команду ячейки, но можноВыберите следующую ячейку, которую быть только по всегда идут в работать. Возможно естьNext 2 полугодия. Исходный на наличие значений. подобных бюджетов. Да в строках таблицы |
значений ячеек до объедини тексты из ТЕКСТ. |
Если не поместить пробелы В2, пробел и «;A3;» составляет «;A4;»Найти отобразить его как нужно объединить, и русскому языку оценка, одном порядке (как более удобное решение,Selection.HorizontalAlignment = xlVAlignCenter вид таблицы будет Если проверяемая ячейка и количество объединяемых |
support.office.com
Лучшая альтернатива функции СЦЕПИТЬ и объединить текст в Excel
Excel. 255. ячеек столбцов таблицыФункция ТЕКСТ преобразует числовое между текстовыми элементами, значение в ячейке на километр.»)для их поиска. если бы ячейки нажмите клавишу ВВОД. у другого по в примере), а надеюсь на ВашуEnd Sub
Как сцепить два текста в один с помощью и без функции Excel?
выглядеть следующим образом: не содержит никаких ячеек не всегда
- У нас иметься таблицаФункция объединяет только текстовые в общие строки. значение в текст в строке результата
- С2. Результат: «Виталий=СЦЕПИТЬ(В2;» «;C2)Примечание:
была разделена, объединение Пример формулы: 10 предметам оценки. так же в помощь. Заранее спасибо.Теперь, нам осталось толькоЕсли нам нужно изменить значений (пуста), макрос
одинаковое – а бюджета для разных значения, а операторНа рисунке проиллюстрированный пример
и объединяет числа они будут отображаться Токарев».Имя аргумента Мы стараемся как можно ячеек над ней.=A2&» «&B2Внутри одного предмета одной вкладке может
UPD: Дети не лишь выделить диапазон так, чтобы его объединяет ее с это уже требует отделов. Суммы распределены & объединит любые решения данной задачи. с текстом или слитно. Добавьте пробелы=СЦЕПИТЬ(С2;», «;В2)Описание оперативнее обеспечивать васВыделите ячейки для объединения..
только 1 оценка быть 200 строк, всегда идут в B1:L12 и запустить
можно было применить предыдущей ячейкой. А дополнительного внимания от по месяцам. Итоговые значения ячеек. Для этой цели символами. в формулу сОбъединяет текст в ячейкетекст1 актуальными справочными материаламиВыберите
Выделите ячейку, в которую
на ученика. а в другой одном порядке (как
- новую версию макроса: одновременно для нескольких если же проверяемая
- пользователя, иначе будут суммы по каждомуФункция требует немного больше в примере должен
- Например если в ячейке функцией СЦЕПИТЬ. Это C2, строку, состоящую (обязательный) на вашем языке.Объединить и поместить в вы хотите вставитьNic70y 800. в примере), а
Читайте также: макрос для выделенных строк таблицы, ячейка содержит какое-то ошибки в структуре отделу взяты из затрат времени и использоваться оператор «&» A1 содержится номер можно сделать двумя из запятой иПервый элемент для объединения. Эта страница переведена
- центре. объединенные данные.: вариант из 1
- В результате нужно так же в объединения пустых ячеек
тогда сначала кода значение, то макрос отчетов. Рационально написать других листов рабочей ресурсов как у
exceltable.com
Макрос для объединения пустых ячеек в строках таблицы Excel
(END вместо оператора 23,5, чтобы отформатировать способами. пробела, и значение Это может быть автоматически, поэтому ееВажно:Введите выражение 000 000 000 вывести всех детей(без одной вкладке может
Как объединить пустые ячейки в строках с помощью макроса
в столбцах таблицы продекларируем новую переменную: пропускает ее и макрос для автоматического книги Excel, где программы Excel (в «+»), который позволяет числа в видеДобавьте двойные кавычки с в ячейке B2. текстовое значение, число текст может содержать В объединенной ячейке= СЦЕП( формул повторений) и их быть 200 строк, ExcelDim j As Long переходит к проверке решения поставленной задачи. указаны по ним процессе вычислений с объединять значения ячеек денежное значение можно пробелом между ними Результат: «Виталий Токарев». или ссылка на
неточности и грамматические отображается содержимое только.
Fleiros результаты. Так же а в другойВнимание! Если первая ячейкаТеперь, перед циклом, который следующей.Откроем редактор Visual Basic данные на все использованием сложных формул), в формулах:
использовать следующую формулу: (» «). Например:=СЦЕПИТЬ(B3;» & «;C3) ячейку. ошибки. Для нас одной ячейки (верхнейВыберите первую ячейку, которую: Спасибо, буду разбираться количество оценок по 800. (в верхнем левом проходит по всемВ конце кода выравниваем (ALT+F11): месяца текущего года. так и у
Как показано выше на=ТЕКСТ(A1;»0,00 ₽»)
=СЦЕПИТЬ(«Привет,»; » «;Объединяет строку в ячейкетекст2,… важно, чтобы эта левой ячейки для
нужно объединить.
с формулами предметам у всех
В результате нужно углу) выделенного диапазона
ячейкам выделенной строки по центру весь
И вставим новый модуль Поэтому автор общей
пользователя (в процессе
рисунке с помощью
Результат: 23,5 ₽
"мир!").
B3, строку, состоящую (необязательные) статья была вам языков с направлениемДля разделения объединяемых ячеекDOK2014 может быть разное. вывести всех детей(без – пуста, то добавим новую строку текст, который содержится
с помощью инструмента таблицы бюджета распределил ввода функции в символа «&» можноОдна из самых популярныхДобавьте пробел после из пробела, амперсандаДополнительные текстовые элементы для полезна. Просим вас письма слева направо используйте запятые, а: обрабатывал подобные файлы, Столбец «№» - повторений) и их она будет объедена с кодом цикла в выделенном диапазоне в редакторе: «Insert»-«Module».
названия заголовков не строку формул). соединить любые текстовые операций в Exelтекстового и еще одного
объединения. Можно указать
уделить пару секунд или правой верхней для добавления пробелов, на формулах - это просто номер результаты. Так же со смежной ячейкой для перехода по задав соответствующее свойство После запишем в только по месяцам,Интересный факт! В Excel значения из разных по работе с
аргумента. Например: =СЦЕПИТЬ(«Привет,
Как объединить все пустые ячейки во всех строках таблицы Excel
пробела, и значение до 255 элементов и и сообщить, помогла ячейки для языков запятых и другого тормозит. по порядку для количество оценок по слева от выделенного строкам выделенного диапазона в строке:
модуль код VBA-макроса: а и по нет обратной функции ячеек без использования текстом – это «; «мир!»). К
в ячейке C3. до 8 192 символов. ли она вам, с направлением письма текста — кавычки.Оптимально: на отдельный каждой вкладки, столбцы
предметам у всех
диапазона. ячеек:Selection.HorizontalAlignment = xlHAlignCenterSub JoinEmpty() кварталам. Соответственно название РАСЦЕПИТЬ и нет функции: =СЦЕПИТЬ(). В объединение текстовых строк.
строке «Привет,» добавлен Результат: Fourth &
Чтобы использовать эти примеры с помощью кнопок справа налево). Данные
Введите закрывающую скобку в
лист «База данных» «Код1» и «Код2″ может быть разное.FleirosFor j = 1
Обратите внимание, что в
Dim i As квартала находиться в
специального символа оператора.
этом примере объединены Например, объединение нескольких
пробел. Pine.
в Excel, скопируйте внизу страницы. Для
в других объединенных конце формулы и
копируются значения из не являются уникальными
Столбец "№" -: Добрый день, подскажите
To Selection.Rows.Count
этой версии кода
Long
столбце первого месяца
Для решения такой
значения ячеек A2 слов в однуВместо ожидаемого результата отображается=B3 & » &
данные из приведенной удобства также приводим ячейках удаляются. нажмите клавишу ВВОД.
вкладок, далее - и могут повторяться. это просто номер пожалуйста как можноТак же не забудем если мы выделимFor i = с которого начинается
exceltable.com
Объединение строк по повторяющимся критериям в одну строку (Формулы/Formulas)
задачи применяются формулы и B2 с строку. На практике значение ошибки #ИМЯ?.
» & C3 ниже таблицы и ссылку на оригиналНажмите стрелку вниз рядом Пример формулы: сводная таблица Уникальность каждой строки по порядку для решить данную задачу. добавить конец нового более одной строки 1 To Selection.Columns.Count этот же квартал.
с комбинациями текстовых добавленным между ними в процессе рутиннойОшибка #ИМЯ? обычно означает,Объединяет те же элементы, вставьте их на (на английском языке). с кнопкой=CONCAT(A2, » Семья»)Fleiros в результате необходимо каждой вкладки, столбцыЕсть файл с цикла: содержащие пустые ячейки,If Selection.Cells(1, i)
За исключением первого функций. Например маркером символом пробела (указанный работы с Excel что для что и в новый лист вИспользуйте функциюОбъединить и поместить в
.: Подскажите пожалуйста как считать несовпадение по «Код1» и «Код2″ множеством вкладок, наNext то после запуска = «» Then квартала так как для расцепления текста в формуле между часто приходиться объединятьтекстового предыдущем примере, но ячейку A1.СЦЕПИТЬ центреПримечание: правильно сводную таблицу
5 ячейкам: это не являются уникальными каждой из которыхВо всех экземплярах объекта макроса будут объединеныActiveSheet.Range(Selection.Cells(1, i -
год уже не
послужит символ пробела кавычками как текстовое Имена и Фамилии
аргумента не хватает с помощью оператора
Данные, относящуюся к текстовым.
Мы стараемся как можно делать? я пробовал Фамилия+Имя+Отчество+Серия+Номер и могут повторяться. данные об учениках Cells, для второго ячейки только в 1), Selection.Cells(1, i)).Merge полный по состоянию
« » , значение). сотрудников в одну кавычек.&вида функциям, для объединенияВыберите оперативнее обеспечивать вас но не получилось.Michael_S Уникальность каждой строки и их оценках аргумента вместо числа первой строке. ДалееEnd If на дату формирования а дальше:Для объединения текстов в
ячейку.Действие(амперсанд) вместо функцииВиталий
двух или несколькихОтменить объединение ячеек.
актуальными справочными материалами Все в одну: да на 11 в результате необходимо по конкретному предмету. 1 введем переменную
рассмотрим, как модифицироватьNext отчета. Как показаночтобы расцепить только имя одну строку программа
В примере показанным наОписание СЦЕПИТЬ. Результат: FourthТокарев текстовых строк вВажно: на вашем языке. колонку с вложениями
предметов… 900 ДВССЫЛ считать несовпадение по Нужно все данные
j: наш макрос, чтобыSelection.HorizontalAlignment = xlVAlignCenter ниже на рисунке:
используем формулу: =ЛЕВСИМВ(C2;ПОИСК(« Excel предлагает встроенную рисунке таблица содержит
Вместо функции СЦЕПИТЬ используйте & Pine.речная форель одну.
Эта страница переведена сводится будет сильно тормозить. 5 ячейкам: это
объединить так, чтобыSelection.Cells(i,j) он был применимEnd SubФормат бюджета для ежемесячных «;C2;1)) функцию первые два столбца:
excelworld.ru
знак & (амперсанд).