Объединение диапазонов ячеек (Microsoft Excel)
Excel предоставляет одну функцию книги и один оператор, которые имеют одну и ту же цель — объединить строки в более длинную строку. Функция СЦЕПИТЬ и оператор амперсанда (&) имеют, по сути, одну и ту же цель.
Многие люди предпочитают оператор амперсанда функции СЦЕПИТЬ, поскольку она требует меньшего набора текста, но СЦЕПИТЬ стала бы намного более ценной, если бы она обрабатывала диапазон ячеек.
К сожалению, это не так, но вы можете создать свою собственную пользовательскую функцию, которая будет очень красиво объединять каждую ячейку в диапазоне.
Рассмотрим следующий макрос:
Function Concat1(myRange As Range, Optional myDelimiter As String) Dim r As Range Application.Volatile For Each r In myRange Concat = Concat & r & myDelimiter Next r If Len(myDelimiter) > 0 Then Concat = Left(Concat, Len(Concat) - 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 Application.Volatile For Each r In myRange If Len(r.Text) > 0 Then Concat = Concat & r & myDelimiter End If Next r If Len(myDelimiter) > 0 Then Concat = Left(Concat, Len(Concat) - Len(myDelimiter)) End If End Function
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (3062) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Concatenating_Ranges_of_Cells [Конкатенация диапазонов ячеек]
.