Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как объединить уникальные значения в Excel?

Author Xiaoyang Last modified

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

Объединение только уникальных значений из столбца

Перечислить уникальные значения и объединить соответствующие значения


Объединение только уникальных значений из столбца

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

Метод 1: Использование функций TEXTJOIN и UNIQUE

Для пользователей Excel 365 и Excel 2021 появление функций TEXTJOIN и UNIQUE делает комбинирование уникальных значений из столбца простым и гибким.

Это решение является наилучшим, когда ваш столбец данных непрерывный, и вы хотите быстро объединить все уникальные элементы в одну ячейку с выбранным разделителем. Оно автоматически устраняет дубликаты, легко проверяется и позволяет изменять диапазон или разделитель по мере необходимости. Однако учтите, что этот подход доступен только в последних версиях Excel; старые версии не поддерживают функцию UNIQUE.

В ячейке, где вы хотите отобразить результат, введите следующую формулу (предполагая, что ваши данные находятся в ячейках A2:A18):

=TEXTJOIN(", ", TRUE, UNIQUE(A2:A18))

 apply TEXTJOIN and UNIQUE functions to concatenate unique values

Объяснение этой формулы:
  • UNIQUE(A2:A18) фильтрует повторяющиеся записи и возвращает только уникальные значения из диапазона A2:A18.
  • TEXTJOIN(", ", TRUE, ...) объединяет (конкатенирует) эти уникальные значения в одну ячейку, разделяя запятой и пробелом. Аргумент TRUE гарантирует, что любые пустые ячейки будут игнорироваться при объединении.

Полезные советы и устранение неполадок:

  • Убедитесь, что ваша версия Excel поддерживает функции UNIQUE и TEXTJOIN. Если вы видите ошибку #ИМЯ?, возможно, вы используете более старую версию.
  • Разделитель, используемый в TEXTJOIN, можно изменить на любой другой по вашему выбору, например "; " или "|".
  • Если вы добавляете или удаляете данные в исходном диапазоне, формула обновляется автоматически.
  • Чтобы избежать непреднамеренных лишних пробелов или разделителей, дважды проверьте аргумент разделителя в формуле.

Метод 2: Использование Kutools AI Aide

Когда вам нужен более быстрый, полностью автоматизированный способ объединения уникальных значений без написания формул, инструмент «AI Aide» из Kutools for Excel предлагает практичное решение, которое экономит время пользователям всех уровней квалификации. Этот метод особенно полезен, если вы не знакомы с продвинутыми формулами Excel или если ваши данные часто меняются, требуя повторяющихся задач.

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

После установки Kutools for Excel получите доступ к этой функции, нажав «Kutools» > «AI Aide», чтобы открыть панель «Kutools AI Aide».

  1. Выберите ячейки, содержащие значения, которые вы хотите объединить в одну ячейку, убедившись, что ваш выбор соответствует предполагаемым данным.
  2. В окне чата опишите свое требование. Например, вы можете ввести:
    Объединить уникальные значения через запятую из выбранного диапазона и поместить объединенный результат в ячейку C2
  3. Нажмите клавишу Enter или кнопку «Отправить» . Искусственный интеллект анализирует ваш запрос и после обработки нажмите «Выполнить», чтобы Kutools выполнил операцию. Результат будет возвращен, как описано.

Примечания и советы:

  • Убедитесь, что вы используете последнюю версию Kutools для доступа ко всем функциям ИИ.
  • Будьте конкретны в вашей текстовой команде для получения лучших результатов; укажите разделитель и целевую ячейку.
  • Kutools AI особенно эффективен для больших диапазонов или рабочих процессов, которые нужно повторять для различных наборов данных.

Метод 3: Использование пользовательской функции

Для пользователей, которым требуется повышенная гибкость, нужны пользовательские разделители или желание иметь многоразовый инструмент для нескольких книг, создание пользовательской функции (UDF) на VBA является эффективным способом автоматического объединения уникальных значений. Это решение VBA совместимо со всеми версиями Excel и не ограничивается наличием новых функций.

  • Вам следует включить макросы в вашей книге.
  • Сохраните файл как «включающий макросы» (.xlsm), если вы продолжите использовать этот код VBA в будущем.
  • Рекомендуется регулярно делать резервные копии книги перед запуском нового кода.

1. Удерживайте ALT + F11, чтобы открыть окно Microsoft Visual Basic for Applications.

2. В окне VBA нажмите Insert > Module, затем скопируйте и вставьте следующий код:

Код VBA: Объединение уникальных значений в одну ячейку:

Function ConcatUniq(xRg As Range, xChar As String) As String
'updateby Extendoffice
    Dim xCell As Range
    Dim xDic As Object
    Set xDic = CreateObject("Scripting.Dictionary")
    For Each xCell In xRg
        xDic(xCell.Value) = Empty
    Next
    ConcatUniq = Join$(xDic.Keys, xChar)
    Set xDic = Nothing
End Function

3. Вернитесь на свой лист и в пустой ячейке (например, C2) введите следующую формулу:

=ConcatUniq(A2:A18,",")

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

 concatenate unique values with vba code

  • Если ваш диапазон отличается, соответственно скорректируйте A2:A18.
  • Если требуется другой разделитель, замените "," в формуле на предпочитаемый символ (например, ";" или |).
  • Если вы сталкиваетесь с ошибкой #ИМЯ?, проверьте, что макросы включены и имя UDF точно совпадает.

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


Метод 4: Использование продвинутой формулы Excel (альтернативное решение)

В средах, где функция UNIQUE недоступна (например, в Excel 2016 или Excel 2019), вы все равно можете объединить уникальные значения, используя более сложную комбинацию классических функций IF, COUNTIF и TEXTJOIN в формулах массива. Этот подход работает, но лучше всего подходит для меньших наборов данных из-за своей вычислительной нагрузки.

1. В целевой ячейке (например, C2) введите следующую формулу массива (после ввода нажмите Ctrl+Shift+Enter вместо простого Enter):

=TEXTJOIN(", ", TRUE, IF(MATCH(A2:A18, A2:A18,0) = ROW(A2:A18) - MIN(ROW(A2:A18)) +1, A2:A18, ""))

2. Если вокруг вашей формулы появились фигурные скобки {}, она была правильно введена как формула массива. Формула вернет объединенные уникальные значения из диапазона A2:A18, разделенные запятыми.

Примечание: Этот метод требует, чтобы вы скорректировали диапазоны в соответствии с вашими данными. Для очень больших диапазонов время расчета может увеличиться. Если вы не уверены в формулах массива, рассмотрите возможность использования решений VBA или надстроек, описанных выше.


Перечисление уникальных значений и объединение соответствующих значений

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

Метод 1: Использование функций TEXTJOIN и UNIQUE

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

1. В пустом столбце введите следующую формулу, чтобы перечислить все уникальные значения из столбца A:

=UNIQUE(A2:A17)

 List unique values with formula

2. Теперь, чтобы объединить соответствующие значения из столбца B для каждой уникальной записи, в соседнем столбце рядом с вашими уникальными значениями (например, E2, если ваши уникальные значения начинаются с D2), введите эту формулу и протяните ее вниз по мере необходимости:

=TEXTJOIN(", ", TRUE, FILTER($B$2:$B$17, $A$2:$A$17 =D2))

 List unique and concatenate matched values with formula

Объяснение этой формулы:
  • UNIQUE(A2:A17) создает массив уникальных элементов из столбца A.
  • FILTER(B2:B17, A2:A17 = D2) генерирует массив, содержащий все соответствующие значения из столбца B для каждого уникального значения в D2.
  • TEXTJOIN(", ", TRUE, ...) объединяет эти соответствующие значения, разделяя их запятыми.
  • Если вам нужен другой разделитель, измените ", " в TEXTJOIN соответствующим образом.
  • Чтобы избежать ошибок, убедитесь, что диапазоны в ваших формулах имеют одинаковую длину и что FILTER не возвращает ошибок из-за отсутствия совпадений.
  • Этот подход автоматически обновляет результаты при изменении данных, что делает его подходящим для динамических сводных таблиц.

Метод 2: Использование Kutools for Excel

Kutools for Excel имеет инструмент «Расширенное объединение строк», специально созданный для группировки данных по уникальным значениям и объединения соответствующих значений с выбранным разделителем. Это подходит для пользователей, которые хотят графическое решение и не комфортно пишут формулы или код. Особенно это ценно при работе с большими наборами данных или при частой регруппировке, такой как периодические отчеты или постоянное обслуживание данных.

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

Перед внесением изменений рекомендуется создать резервную копию данных, скопировав исходные данные в другое место. Затем следуйте этим шагам:

  • Выберите диапазон данных, который вы хотите организовать.
  • Перейдите к «Kutools» > «Объединить и разделить» > «Расширенное объединение строк», как показано ниже:
     click Advanced Combine Rows feature of kutools
  • В открывшемся дииалоговом окне:
    • Выберите столбец с дубликатами для объединения, установив его как «Основной ключ» в столбце «Операция».
    • Выберите столбец, который вы хотите агрегировать (значения для объединения); укажите предпочитаемый разделитель в выпадающем списке под «Операцией».
    • Нажмите OK для выполнения.
     specify the options in the dialog box

Результат:

Kutools переорганизует ваши данные, извлекая уникальные записи и объединяя все связанные значения на основе вашей настройки.
 List unique and concatenate matched values with kutools

  • Если вы допустили ошибку, используйте функцию Отменить в Excel (Ctrl+Z), чтобы вернуться.
  • Процесс работает для наборов данных, потенциально содержащих сотни или тысячи записей, и поддерживает множество разделителей.

Метод 3: Использование кода VBA

Использование скрипта VBA предоставляет полный контроль над тем, как вы извлекаете и суммируете данные. Этот подход совместим со всеми версиями Excel и особенно подходит для пользовательских рабочих процессов, автоматизации или когда функции, такие как UNIQUE или FILTER, недоступны. Если структура ваших данных часто меняется, это решение VBA можно легко адаптировать.

Чтобы использовать приведенный ниже код, просто следуйте этим шагам:

1. Нажмите ALT + F11, чтобы открыть редактор VBA.

2. Перейдите к Insert > Module, затем вставьте следующий код в открывшееся окно модуля:

Код VBA: Перечислить уникальные значения и объединить соответствующие данные

Sub test()
    'updateby Extendoffice
    Dim xRg As Range
    Dim xArr As Variant
    Dim xCell As Range
    Dim xTxt As String
    Dim I As Long
    Dim xDic As Object
    Dim xOutputRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the data range", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If xRg.Areas.Count > 1 Then
        MsgBox "Does not support multiple selections", , "Kutools for Excel"
        Exit Sub
    End If
    If xRg.Columns.Count <> 2 Then
        MsgBox "There must be only two columns in the selected range", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutputRg = Application.InputBox("Please select the output cell", "Kutools for Excel", Type:=8)
    If xOutputRg Is Nothing Then Exit Sub
    xArr = xRg
    Set xDic = CreateObject("Scripting.Dictionary")
    xDic.CompareMode = 1
    For I = 1 To UBound(xArr)
        If Not xDic.Exists(xArr(I, 1)) Then
            xDic.Item(xArr(I, 1)) = xDic.Count + 1
            xArr(xDic.Count, 1) = xArr(I, 1)
            xArr(xDic.Count, 2) = xArr(I, 2)
        Else
            xArr(xDic.Item(xArr(I, 1)), 2) = xArr(xDic.Item(xArr(I, 1)), 2) & "," & xArr(I, 2)
        End If
    Next
    xOutputRg.Resize(xDic.Count, 2).Value = xArr
End Sub

3. Нажмите F5, чтобы запустить скрипт. Появится всплывающее окно, которое попросит вас выбрать диапазон данных. Убедитесь, что вы выбираете ровно два столбца: первый для уникальных значений, второй для соответствующих значений.

 vba code to select data range

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

 vba code to select cell to put the result

5. После нажатия OK код создаст таблицу, содержащую только уникальные значения и их связанные объединенные данные.

 vba code to List unique and concatenate matched values

  • Если вы получаете ошибку о количестве столбцов, проверьте, что ваш выбор включает только два столбца.
  • Если вам нужно изменить разделитель с запятой на другой символ, скорректируйте код в строке xArr(xDic.Item(xArr(I,1)),2) = xArr(xDic.Item(xArr(I,1)),2) & "," & xArr(I,2) по мере необходимости.
  • Всегда делайте резервную копию файла перед запуском новых скриптов VBA.

Подводя итог, Excel предлагает множество подходов для объединения уникальных значений и консолидации связанных данных. Методы с использованием формул быстры и динамичны в современном Excel, в то время как решения VBA и Kutools обеспечивают более широкую совместимость и больший контроль. Всегда выбирайте метод, соответствующий размеру ваших данных, версии Excel и предпочтительному рабочему процессу. Не забывайте тестировать на примере данных или делать резервные копии работы, особенно при использовании скриптов или пакетных операций. Для дальнейшего изучения Excel и продвинутых советов исследуйте наш полный сборник учебников.


Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

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


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
  • Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек