Объединение диапазонов ячеек (Microsoft Excel)
Excel предоставляет одну функцию книги и один оператор, которые имеют одну и ту же цель — объединить строки в более длинную строку. Функция СЦЕПИТЬ и оператор амперсанда (&) имеют, по сути, одну и ту же цель.
Многие люди предпочитают оператор амперсанда функции СЦЕПИТЬ, поскольку она требует меньшего набора текста, но СЦЕПИТЬ стала бы намного более ценной, если бы она обрабатывала диапазон ячеек.
К сожалению, это не так, но вы можете создать свою собственную пользовательскую функцию, которая будет очень хорошо объединять каждую ячейку в диапазоне.
Рассмотрим следующий макрос:
Function Concat1(myRange As Range, Optional myDelimiter As String) Dim r As Range For Each r In myRange Concat1 = Concat1 & r & myDelimiter Next r If Len(myDelimiter) > 0 Then Concat1 = Left(Concat1, Len(Concat1) - Len(myDelimiter)) End If End Function
Эта функция требует диапазона и предоставляет дополнительный разделитель.
Последний оператор «If» удаляет последний конечный разделитель из объединенной строки. С помощью функции CONCAT1 ячейки могут быть добавлены и удалены в пределах диапазона без обслуживания, требуемого формулами CONCATENATE или амперсанда. Все, что вам нужно сделать, это вызвать функцию одним из следующих способов:
=CONCAT1(C8:E10) =CONCAT1(C8:E10,"|")
Второй метод вызова функции использует необязательный разделитель, который вставляется между каждым из объединенных значений из диапазона C8: E10. Однако с этим возникает проблема: если ячейка в этом диапазоне пуста, вы можете получить два последовательных разделителя. Если вы предпочитаете использовать только один разделитель, вам нужно внести в функцию одно небольшое изменение:
Function Concat2(myRange As Range, Optional myDelimiter As String) Dim r As Range For Each r In myRange If Len(r.Text) > 0 Then Concat2 = Concat2 & r & myDelimiter End If Next r If Len(myDelimiter) > 0 Then Concat2 = Left(Concat2, Len(Concat2) - Len(myDelimiter)) End If End Function
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (11247) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Concatenating_Ranges_of_Cells [Конкатенация диапазонов ячеек]
.