Как объединить уникальные значения в Excel?
При работе с электронными таблицами часто возникают ситуации, когда необходимо объединить (сконкатенировать) только уникальные значения из столбца или составить списки, которые суммируют уникальные записи с их соответствующими данными. Обработка дубликатов и представление сводной информации не только упорядочивает ваши данные, но и делает отчеты более четкими и содержательными. В Excel существует несколько практических способов достижения этих целей — от использования встроенных функций до применения расширенных надстроек или пользовательского кода. Это руководство предоставляет подробное описание различных методов для конкатенации уникальных значений и перечисления уникальных записей вместе с их связанными данными. Представленные решения подходят для разных версий Excel и предпочтений пользователей, помогая выбрать лучший подход для вашего случая.
Объединение только уникальных значений из столбца
- Использование функций TEXTJOIN и UNIQUE
- Использование Kutools AI Aide
- Использование пользовательской функции
- Использование продвинутой формулы Excel (альтернативное решение)
Перечислить уникальные значения и объединить соответствующие значения
- Использование функций TEXTJOIN и UNIQUE
- Использование Kutools for Excel
- Использование кода VBA
- Использование сводной таблицы Excel с формулами (альтернативное решение)
Объединение только уникальных значений из столбца
В процессе анализа данных в Excel одной из частых задач является объединение только уникальных записей в столбце в одну ячейку. Это может быть особенно полезно для создания сводных отчетов, избегания дублирующихся значений в списке или подготовки данных для дальнейшей обработки. Выбор метода зависит от вашей версии Excel, размера набора данных и уровня владения формулами или кодом. Предложенные ниже методы учитывают различные потребности, подчеркивают особенности каждого из них и предлагают практические советы для обеспечения правильного выполнения.
Метод 1: Использование функций TEXTJOIN и UNIQUE
Для пользователей Excel 365 и Excel 2021 появление функций TEXTJOIN и UNIQUE делает комбинирование уникальных значений из столбца простым и гибким.
Это решение является наилучшим, когда ваш столбец данных непрерывный, и вы хотите быстро объединить все уникальные элементы в одну ячейку с выбранным разделителем. Оно автоматически устраняет дубликаты, легко проверяется и позволяет изменять диапазон или разделитель по мере необходимости. Однако учтите, что этот подход доступен только в последних версиях Excel; старые версии не поддерживают функцию UNIQUE.
В ячейке, где вы хотите отобразить результат, введите следующую формулу (предполагая, что ваши данные находятся в ячейках A2:A18):
=TEXTJOIN(", ", TRUE, UNIQUE(A2:A18))
- UNIQUE(A2:A18) фильтрует повторяющиеся записи и возвращает только уникальные значения из диапазона A2:A18.
- TEXTJOIN(", ", TRUE, ...) объединяет (конкатенирует) эти уникальные значения в одну ячейку, разделяя запятой и пробелом. Аргумент TRUE гарантирует, что любые пустые ячейки будут игнорироваться при объединении.
Полезные советы и устранение неполадок:
- Убедитесь, что ваша версия Excel поддерживает функции UNIQUE и TEXTJOIN. Если вы видите ошибку #ИМЯ?, возможно, вы используете более старую версию.
- Разделитель, используемый в TEXTJOIN, можно изменить на любой другой по вашему выбору, например "; " или "|".
- Если вы добавляете или удаляете данные в исходном диапазоне, формула обновляется автоматически.
- Чтобы избежать непреднамеренных лишних пробелов или разделителей, дважды проверьте аргумент разделителя в формуле.
Метод 2: Использование Kutools AI Aide
Когда вам нужен более быстрый, полностью автоматизированный способ объединения уникальных значений без написания формул, инструмент «AI Aide» из Kutools for Excel предлагает практичное решение, которое экономит время пользователям всех уровней квалификации. Этот метод особенно полезен, если вы не знакомы с продвинутыми формулами Excel или если ваши данные часто меняются, требуя повторяющихся задач.
После установки Kutools for Excel получите доступ к этой функции, нажав «Kutools» > «AI Aide», чтобы открыть панель «Kutools AI Aide».
- Выберите ячейки, содержащие значения, которые вы хотите объединить в одну ячейку, убедившись, что ваш выбор соответствует предполагаемым данным.
- В окне чата опишите свое требование. Например, вы можете ввести:
Объединить уникальные значения через запятую из выбранного диапазона и поместить объединенный результат в ячейку C2 - Нажмите клавишу 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 для подтверждения. Ячейка отобразит все уникальные значения из указанного диапазона, разделенные запятыми.
- Если ваш диапазон отличается, соответственно скорректируйте 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)
2. Теперь, чтобы объединить соответствующие значения из столбца B для каждой уникальной записи, в соседнем столбце рядом с вашими уникальными значениями (например, E2, если ваши уникальные значения начинаются с D2), введите эту формулу и протяните ее вниз по мере необходимости:
=TEXTJOIN(", ", TRUE, FILTER($B$2:$B$17, $A$2:$A$17 =D2))
- UNIQUE(A2:A17) создает массив уникальных элементов из столбца A.
- FILTER(B2:B17, A2:A17 = D2) генерирует массив, содержащий все соответствующие значения из столбца B для каждого уникального значения в D2.
- TEXTJOIN(", ", TRUE, ...) объединяет эти соответствующие значения, разделяя их запятыми.
- Если вам нужен другой разделитель, измените ", " в TEXTJOIN соответствующим образом.
- Чтобы избежать ошибок, убедитесь, что диапазоны в ваших формулах имеют одинаковую длину и что FILTER не возвращает ошибок из-за отсутствия совпадений.
- Этот подход автоматически обновляет результаты при изменении данных, что делает его подходящим для динамических сводных таблиц.
Метод 2: Использование Kutools for Excel
Kutools for Excel имеет инструмент «Расширенное объединение строк», специально созданный для группировки данных по уникальным значениям и объединения соответствующих значений с выбранным разделителем. Это подходит для пользователей, которые хотят графическое решение и не комфортно пишут формулы или код. Особенно это ценно при работе с большими наборами данных или при частой регруппировке, такой как периодические отчеты или постоянное обслуживание данных.
Перед внесением изменений рекомендуется создать резервную копию данных, скопировав исходные данные в другое место. Затем следуйте этим шагам:
- Выберите диапазон данных, который вы хотите организовать.
- Перейдите к «Kutools» > «Объединить и разделить» > «Расширенное объединение строк», как показано ниже:
- В открывшемся дииалоговом окне:
- Выберите столбец с дубликатами для объединения, установив его как «Основной ключ» в столбце «Операция».
- Выберите столбец, который вы хотите агрегировать (значения для объединения); укажите предпочитаемый разделитель в выпадающем списке под «Операцией».
- Нажмите OK для выполнения.
Результат:
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, чтобы запустить скрипт. Появится всплывающее окно, которое попросит вас выбрать диапазон данных. Убедитесь, что вы выбираете ровно два столбца: первый для уникальных значений, второй для соответствующих значений.
4. Нажмите OK и выберите первую ячейку, где должна начинаться результирующая таблица.
5. После нажатия OK код создаст таблицу, содержащую только уникальные значения и их связанные объединенные данные.
- Если вы получаете ошибку о количестве столбцов, проверьте, что ваш выбор включает только два столбца.
- Если вам нужно изменить разделитель с запятой на другой символ, скорректируйте код в строке
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
Повысьте свои навыки работы в 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 и PowerPoint плюс Office Tab Pro
- Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
- Совместная работа — максимальная эффективность между приложениями Office
- 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
- Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек