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

Как сравнить значения, разделенные запятыми, в двух ячейках и вернуть повторяющиеся или уникальные значения в Excel?

Author: Siluvia Last Modified: 2025-06-05

Как показано на скриншоте ниже, есть два столбца - Столбец1 и Столбец2, каждая ячейка в столбце содержит числа, разделенные запятыми. Чтобы сравнить числа, разделенные запятыми, в Столбце1 с содержимым ячеек в той же строке Столбца2 и вернуть все повторяющиеся или уникальные значения, что вы можете сделать?

Это руководство предоставляет два метода, которые помогут вам выполнить эту задачу.

compare comma separated values in two cells


Сравнение значений, разделенных запятыми, в двух ячейках и возврат повторяющихся или уникальных значений с помощью формул

В этом разделе представлены две формулы, которые помогут сравнить значения, разделенные запятыми, в двух ячейках и вернуть повторяющиеся или уникальные значения между ними.

Примечание: следующие формулы работают только в Excel для 365. Если вы используете другие версии Excel, попробуйте использовать метод VBA ниже.

Возьмем вышеупомянутые два столбца в качестве примера, чтобы сравнить числа, разделенные запятыми, в Столбце1 с числами, разделенными запятыми, в той же строке Столбца2 и вернуть повторяющиеся или уникальные значения, пожалуйста, сделайте следующее.

sample data

Возврат повторяющихся значений

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

=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))

 compare to return duplicate values

Возврат уникальных значений

Чтобы вернуть уникальные числа между двумя указанными ячейками с числами, разделенными запятыми, в той же строке, следующая формула может помочь.

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

=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))

compare to return unique values

Примечания:

1) Две приведенные выше формулы можно применять только в Excel для 365. Если вы используете версию Excel, отличную от Excel для 365, пожалуйста, попробуйте следующий метод VBA.
2) Ячейки для сравнения должны быть расположены рядом друг с другом в одной строке или столбце.
a screenshot of kutools for excel ai

Раскройте магию Excel с Kutools AI

  • Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
  • Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
  • Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
  • Интерпретация формул: Легко разбирайтесь в сложных формулах.
  • Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Улучшите возможности Excel с помощью инструментов на базе ИИ. Скачать сейчас и испытайте беспрецедентную эффективность!

Сравнение двух столбцов со значениями, разделенными запятыми, и возврат повторяющихся или уникальных значений с помощью VBA

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

Возьмем тот же пример, что и выше, чтобы сравнить числа, разделенные запятыми, в Столбце1 с числами, разделенными запятыми, в той же строке Столбца2 и вернуть повторяющиеся или уникальные значения, пожалуйста, попробуйте пользовательскую функцию из этого раздела.

 sample data

1. В открывшейся книге нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.

2. В окне Microsoft Visual Basic for Applications нажмите Вставка > Модуль и скопируйте следующий код VBA в окно Модуль (Код).

 copy anf paste the code into the module

Код VBA: Сравнение значений, разделенных запятыми, в двух ячейках и возврат повторяющихся/уникальных значений

Private Function COMPARE(Rng1, Rng2 As Range, Op As Boolean)
'Updated by Extendoffice 20221019
    Dim R1Arr As Variant
    Dim R2Arr As Variant
    Dim Ans1 As String
    Dim Ans2 As String
    Dim Separator As String
    Dim d1 As New Dictionary
    Dim d2 As New Dictionary
    Dim d3 As New Dictionary
    Application.Volatile

    Separator = ", "
    
    R1Arr = Split(Rng1.Value, Separator)
    R2Arr = Split(Rng2.Value, Separator)
    
    Ans1 = ""
    Ans2 = ""
    
    For Each ch In R2Arr
        If Not d2.Exists(ch) Then
            d2.Add ch, "1"
        End If
    Next
    
    If Op Then
        For Each ch In R1Arr
            If d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans1 = Ans1 & ch & Separator
                End If
            End If
        Next
        If Ans1 <> "" Then
            Ans1 = Mid(Ans1, 1, Len(Ans1) - Len(Separator))
        End If
        COMPARE = Ans1
    Else
        For Each ch In R1Arr
            If Not d1.Exists(ch) Then
                d1.Add ch, "1"
            End If
        Next
        
        For Each ch In R1Arr
            If Not d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        For Each ch In R2Arr
            If Not d1.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        If Ans2 <> "" Then
            Ans2 = Mid(Ans2, 1, Len(Ans2) - Len(Separator))
        End If
        COMPARE = Ans2
    End If

End Function

3. После вставки кода в окно Модуль (Код) перейдите в меню Сервис > Ссылки, чтобы открыть окно Ссылки – VBAProject, отметьте поле Microsoft Scripting Runtime и нажмите кнопку ОК.

 click Tools > References and check Microsoft Scripting Runtime box

4. Нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.

5. Теперь вам нужно применить две функции отдельно, чтобы вернуть повторяющиеся и уникальные значения из двух ячеек со значениями, разделенными запятыми.

Возврат повторяющегося значения

Выберите ячейку для вывода повторяющихся чисел, в этом примере я выбираю ячейку D2, затем введите следующую формулу и нажмите клавишу Enter, чтобы получить повторяющиеся числа между ячейками A2 и B2.

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

=COMPARE(A2,B2,TRUE)

 use formula to return duplicate value

Возврат уникальных значений

Выберите ячейку для вывода уникальных чисел, в этом примере я выбираю ячейку E2, затем введите следующую формулу и нажмите клавишу Enter, чтобы получить уникальные числа между ячейками A2 и B2.

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

=COMPARE(A2,B2,FALSE)

 use formula to return unique value

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

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

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


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

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