Excel найти количество совпадений в столбце

Skip to content

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

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

  1. Подсчет количества каждого из дубликатов.
  2. Считаем общее количество дубликатов в столбце.
  3. Количество совпадений по части ячейки.
  4. Как посчитать количество дубликатов внутри ячейки.
  5. Подсчет дубликатов строк.

Подсчет количества каждого из дубликатов.

Если у вас, к примеру, есть столбец с наименованиями товаров, вам часто может понадобиться узнать, сколько дубликатов имеется для каждого из них.

Чтобы узнать, сколько раз та или иная запись встречается в вашей рабочей таблице Excel, используйте простую формулу COUNTIF, где A2 — первый, а A8 — последний элемент списка:

=СЧЁТЕСЛИ($A$2:$A$17;A2)

Как показано на следующем снимке экрана, программа подсчитывает вхождения каждого элемента: «Fanta» встречается 2 раза, «Sprite» — 3 раза, и так далее.

Если вы хотите указать на 1- е , 2- е , 3- е и т. д. появление каждого элемента, используйте:

=СЧЁТЕСЛИ($A$2:$A2;A2)

Мы отметили на рисунке первое, второе и третье появление Sprite.

Аналогичным образом вы можете посчитать количество повторяющихся строк. Единственное отличие состоит в том, что вам нужно будет использовать функцию СЧЁТЕСЛИМН() вместо СЧЁТЕСЛИ(). Например:

=СЧЁТЕСЛИМН($A$2:$A$17;A2;$B$2:$B$17;B2;$C$2:$C$17;C2)

На скриншоте мы отметили одинаковые строки.

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

Считаем общее количество дубликатов в столбце.

Самый простой способ подсчета повторений в столбце — это использовать любую из формул, которые мы использовали для идентификации дубликатов в Excel (ссылки смотрите в конце этой статьи). И затем вы можете подсчитать повторы:

=СЧЁТЕСЛИ(диапазон, «Дубликат»)

Пересчитываем метки, которые вы использовали для поиска дубликатов.

В этом примере наше выражение принимает следующую форму:

=СЧЁТЕСЛИ(B2:B17;»Дубликат»)

Еще один способ подсчета числа повторений в Excel — с использованием более сложной формулы массива. Преимущество этого подхода в том, что он не требует вспомогательного столбца:

{=ЧСТРОК($A$2:$A$17)-СУММ(ЕСЛИ(СЧЁТЕСЛИ($A$2:$A$17;$A$2:$A$17)=1;1;0))}

Поскольку это формула массива, не забудьте нажать Ctrl + Shift + Enter, чтобы завершить ввод. 

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

Можно обойтись и без формулы маиисва:

=СУММПРОИЗВ(—(СЧЁТЕСЛИ(A2:A17;A2:A17)>1))

Это работает и с текстом, и с числами, а пустые ячейки игнорируются, что также очень полезно.

Теперь давайте посчитаем  количество дубликатов без учета их первого появления в таблице.

Здесь также есть два способа. Первый – с использованием вспомогательного столбца В.

В столбце B проставляем соответствующие отметки, как мы это уже не раз делали.

=ЕСЛИ(СЧЁТЕСЛИ($A$2:$A2; A2)>1;»Дубликат»;»»)

Далее  определяем количество ячеек, содержимое которых встречается не в первый раз:

=СЧЁТЕСЛИ(B2:B17;»Дубликат»)

или формула массива

{=СЧЁТЗ(A2:A17)-СУММ(1/СЧЁТЕСЛИ(A2:A17;A2:A17))}

Ну а можно пойти от обратного. Считаем количество уникальных записей вот таким простым и элегантным способом:

{=СУММ(1/СЧЁТЕСЛИ(A2:A17;A2:A17))}

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

Ну а теперь школьная задачка: если у нас всего 16 слов (можно использовать функцию СЧЁТЗ), и из них 10 – уникальных, то сколько будет неуникальных? Правильно – 6!

Количество совпадений по части ячейки.

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

Будем проверять часть содержимого, используя функцию СЧЕТЕСЛИ и знаки подстановки.

Делаем это так:

=СЧЁТЕСЛИ($A$2:$A$17;»*»&C2&»*»)

Ищем любое вхождение искомого слова при помощи знаков подстановки “*”.

Как посчитать количество дубликатов внутри ячейки.

 Случается, что список находится вовсе не в таблице, а в одной ячейке ($A$2):
Рассмотренные нами выше приемы здесь точно не сработают. Но в Excel хватает других возможностей, и все можно сделать так же достаточно просто:

=(ДЛСТР($D$1)-ДЛСТР(ПОДСТАВИТЬ($D$1;D3;»»)))/ДЛСТР(D3)

При помощи ДЛСТР считаем количество символов в ячейке со списком товаров ($A$2)
Затем при помощи ПОДСТАВИТЬ заменяем в указанном тексте заданное слово на пустое «». По умолчанию заменяем все повторы. А фактически – удаляем их.

Теперь наша задача – узнать, сколько слов мы удалили. При помощи ДЛСТР узнаем количество символов, оставшихся в списке после этой замены. Вычитаем из первоначального количества символов количество оставшихся, то есть узнаем, сколько символов было удалено. Делим результат на число букв в искомом слове.

Результат вы видите на скриншоте выше.

Подсчет дубликатов строк.

Чтобы найти общее количество повторяющихся строк, вставьте функцию СЧЁТЕСЛИМН() вместо СЧЕТЕСЛИ() и укажите все столбцы, которые вы хотите проверить на наличие совпадений. Например, чтобы подсчитать повторяющиеся строки на основе столбцов A и B, введите следующую формулу массива в свой лист Excel:

{=ЧСТРОК($A$2:$A$17)-СУММ(ЕСЛИ(СЧЁТЕСЛИМН($A$2:$A$17;$A$2:$A$17;$B$2:$B$17;$B$2:$B$17)=1;1;0))}

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

Рекомендуем также:

Подсчет количества вхождений значения

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Еще…Меньше

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

  • Если диапазон, например A2:D20, содержит числовые значения 5, 6, 7 и 6, то число 6 встречается два раза.

  • Если столбец содержит поговорки «Климов», «Наворов», «Наворов» и «Наворов», то этот столбец встречается три раза.

Подсчитать количество вхождений значения можно несколькими способами.

Используйте функцию СЧЁТЕСЛИ, чтобы узнать, сколько раз встречается определенное значение в диапазоне ячеек.

Примеры с функцией СЧЁТЕСЛИ

Дополнительные сведения см. в статье Функция СЧЁТЕСЛИ.

Функция СЧЁТЕСЛИМН аналогична функции СЧЁТЕСЛИ с одним важным исключением: СЧЁТЕСЛИМН позволяет применить критерии к ячейкам в нескольких диапазонах и подсчитывает число соответствий каждому критерию. С функцией СЧЁТЕСЛИМН можно использовать до 127 пар диапазонов и критериев.

Синтаксис функции СЧЁТЕСЛИМН имеет следующий вид:

СЧЁТЕСЛИМН(диапазон_условия1;условие1;[диапазон_условия2;условие2];…)

См. пример ниже.

Пример с функцией СЧЁТЕСЛИМН

Дополнительные сведения об использовании этой функции для подсчета вхождений в нескольких диапазонах и с несколькими условиями см. в статье Функция СЧЁТЕСЛИМН.

Предположим, вам нужно определить, сколько продавцов продало определенный товар в определенном регионе или сколько продаж было сделано конкретным продавцом. Функции ЕСЛИ и СЧЁТ можно использовать вместе. то есть сначала для проверки условия используется функция ЕСЛИ, а затем, только если функция ЕСЛИ имеет истинное положение, для подсчета ячеек используется функция СЧЁТ.

Примечания: 

  • Формулы в этом примере должны быть введены как формулы массива.

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

    • Если вы открыли эту книгу в Excel для Windows или Excel 2016 для Mac и хотите изменить формулу или создать похожую, нажмите F2,а затем нажмите CTRL+SHIFT+ВВОД, чтобы формула возвращала нужные результаты. В более ранних версиях Excel для Mac используйте клавиши COMMAND+SHIFT+ВВОД.

  • Чтобы эти примеры формул работали, вторым аргументом функции ЕСЛИ должно быть число.

Примеры вложенных функций СЧЁТ и ЕСЛИ

Дополнительные сведения об этих функциях см. в статьях Функция СЧЁТ и Функция ЕСЛИ.

В следующих примерах функции ЕСЛИ и СУММ используются вместе. Функция ЕСЛИ сначала проверяет значения в определенных ячейках, а затем, если возвращается значение ИСТИНА, функция СУММ складывает значения, удовлетворяющие условию.

Примечания: Формулы, приведенные в этом примере, должны быть введены как формулы массива.

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

  • Если вы открыли эту книгу в Excel для Windows или Excel 2016 для Mac и хотите изменить формулу или создать похожую, нажмите F2,а затем нажмите CTRL+SHIFT+ВВОД, чтобы формула возвращала нужные результаты. В более ранних версиях Excel для Mac используйте клавиши COMMAND+SHIFT+ВВОД.

Пример 1

Пример 1. Функции СУММ и ЕСЛИ, вложенные в формулу

Функция выше означает, что если диапазон C2:C7 содержит значения Шашков и Туманов, то функция СУММ должна отобразить сумму записей, в которых выполняется условие. Формула найдет в данном диапазоне три записи для «Шашков» и одну для «Туманов» и отобразит 4.

Пример 2

Пример 2. Функции СУММ и ЕСЛИ, вложенные в формулу

Функция выше означает, что если ячейка D2:D7 содержит значения меньше 9 000 ₽ или больше 19 000 ₽, то функция СУММ должна отобразить сумму всех записей, в которых выполняется условие. Формула найдет две записи D3 и D5 со значениями меньше 9 000 ₽, а затем D4 и D6 со значениями больше 19 000 ₽ и отобразит 4.

Пример 3

Пример 3. Функции СУММ и ЕСЛИ, вложенные в формулу

Функция выше сообщает, что если в функции D2:D7 есть счета для записи «Иванов» на сумму менее 9 000 рублей, то функция СУММ должна отобразить сумму записей, в которых условие должно быть выполнены. Формула найдет ячейку C6, которая соответствует условию, и отобразит 1.

Вы можете использовать совокупные значения для отображения итогов и подсчета количества уникальных значений. Сводная таблица — это интерактивный способ быстрого суммирования больших объемов данных. Вы можете использовать ее для развертывания и свертывания уровней представления данных, чтобы получить точные сведения о результатах и детализировать итоговые данные по интересующим вопросам. Кроме того, можно перемещать строки в столбцы или столбцы в строки («сводить» их) для просмотра количества вхождений значения в сводной таблице. Рассмотрим пример электронной таблицы «Продажи», в которой можно подсчитать количество значений продаж для разделов «Гольф» и «Теннис» за конкретные кварталы.

  1. Введите данные в электронную таблицу Excel.

    Пример данных для сводной таблицы

  2. Выделите диапазон A2:C8

  3. Выберите Вставка > Сводная таблица.

  4. В диалоговом окне «Создание сводной таблицы» установите переключатель Выбрать таблицу или диапазон, а затем — На новый лист и нажмите кнопку ОК.

    Пустая сводная таблица будет создана на новом листе.

  5. В области «Поля сводной таблицы» выполните одно из указанных ниже действий.

    1. Перетащите элемент Спорт в область Строки.

    2. Перетащите элемент Квартал в область Столбцы.

    3. Перетащите элемент Продажи в область Значения.

    4. Повторите третье действие.

      Имя поля Сумма_продаж_2 отобразится и в области «Сводная таблица», и в области «Значения».

      На этом этапе область «Поля сводной таблицы» будет выглядеть так:

      Поля сводной таблицы

    5. В области Значения щелкните стрелку раскрывающегося списка рядом с полем Сумма_продаж_2 и выберите пункт Параметры поля значений.

    6. В диалоговом окне Параметры поля значений выполните указанные ниже действия.

      1. На вкладке Операция выберите пункт Количество.

      2. В поле Пользовательское имя измените имя на Количество.

        Диалоговое окно "Параметры поля значений"

      3. Нажмите кнопку ОК.

    Сводная таблица отобразит количество записей для разделов «Гольф» и «Теннис» за кварталы 3 и 4, а также показатели продаж.

    Сводная таблица

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Полные сведения о формулах в Excel

Рекомендации, позволяющие избежать появления неработающих формул

Поиск ошибок в формулах

Сочетания клавиш и горячие клавиши в Excel

Функции Excel (по алфавиту)

Функции Excel (по категориям)

Нужна дополнительная помощь?

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

Зачем считать дубликаты? Мы сможем получить ответы на многие интересные вопросы. Например, сколько клиентов совершили покупку, сколько менеджеров продали, сколько раз они работали с конкретным поставщиком и т.д. Если вы хотите рассчитать точное количество повторяющихся записей в таблице Excel, используйте одну из следующие методы для подсчета дубликатов.

Подсчет количества каждого из дубликатов.

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

Чтобы узнать, сколько раз запись появляется на вашем листе Excel, используйте простую формулу СЧЁТЕСЛИ, где A2 — это первый элемент, а A8 — последний элемент в списке:

= СЧЁТЕСЛИ ($ A $ 2: $ A $ 17; A2)

Как показано на следующем снимке экрана, программа считает появления каждого элемента: «Фанта» встречается 2 раза, «Спрайт» встречается 3 раза и так далее.

Если вы хотите указать 1-й, 2-й, 3-й и т.д., когда встречается каждый элемент, используйте:

= СЧЁТЕСЛИ ($ A $ 2: $ A2; A2)

Мы отметили на рисунке первое, второе и третье вхождения Sprite.

Точно так же вы можете подсчитать количество повторяющихся строк. Единственная разница в том, что вам нужно будет использовать функцию СЧЁТЕСЛИ () вместо СЧЁТЕСЛИ (). Например:

= СЧЁТЕСЛИ ($ A $ 2: $ A $ 17; A2; $ B $ 2: $ B $ 17; B2; $ C $ 2: $ C $ 17, C2)

На скриншоте мы отметили те же линии.

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

Считаем общее количество дубликатов в столбце.

Самый простой способ подсчета повторов в столбце — использовать любую из формул, которые мы использовали для выявления дубликатов в Excel (см. Ссылки в конце этой статьи). А потом можете посчитать количество повторений:

= СЧЁТЕСЛИ (диапазон; «Дублировать»)

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

В этом примере наше выражение принимает следующую форму:

= СЧЁТЕСЛИ (B2: B17; «Дублировать»)

Другой способ подсчитать количество повторений в Excel — использовать более сложную формулу массива. Преимущество такого подхода в том, что он не требует опорной стойки:

{= СТРОКИ ($ A $ 2: $ A $ 17) -SUM (IF (COUNTIF ($ A $ 2: $ A $ 17; $ A $ 2: $ A $ 17) = 1; 1; 0))}

Поскольку это формула массива, не забудьте нажать Ctrl + Shift + Enter, чтобы завершить ввод. 

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

Можно обойтись без формулы майисва:

= СУММПРОИЗВ (- (СЧЁТЕСЛИ (A2: A17; A2: A17)> 1))

Он работает как для текста, так и для чисел, а пустые ячейки игнорируются, что также очень полезно.

Теперь посчитаем количество дубликатов без учета их первого появления в таблице.

Здесь также есть два пути. Первый использует вспомогательную колонку B.

В графе Б ставим соответствующие знаки, как мы это делали не раз.

= ЕСЛИ (СЧЁТЕСЛИ ($ A $ 2: $ A2; A2)> 1, «Дублировать»;»»)

Далее определяем количество ячеек, содержимое которых не определяется впервые:

= СЧЁТЕСЛИ (B2: B17; «Дублировать»)

или матричная формула

{= СЧЁТ (A2: A17) -SUM (1 / СЧЁТЕСЛИ (A2: A17; A2: A17))}

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

{= СУММ (1 / СЧЁТЕСЛИ (A2: A17; A2: A17))}

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

Что ж, теперь школьная проблема: если у нас есть только 16 слов (вы можете использовать функцию COUNT) и 10 из них уникальны, сколько будет неуникальных? Правильно — 6!

Количество совпадений по части ячейки.

Допустим, у нас в ячейке есть не только название товара, но и другая дополнительная информация: группа товаров, номер счета, единица измерения и т.д. Как в этом случае рассчитывается количество упоминаний того или иного товара?

Мы проверяем часть содержимого с помощью функции СЧЁТЕСЛИ и подстановочных знаков.

Делаем это так:

= СЧЁТЕСЛИ ($ A $ 2: $ A $ 17; «*» & C2&»*»)

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

Как посчитать количество дубликатов внутри ячейки.

 Бывает, что список находится вовсе не в таблице, а в ячейке ($ A $ 2):
Приемы, которые мы обсуждали выше, здесь определенно не сработают. Но в Excel нет других функций, и все можно сделать так же легко:

= (DLSTR ($ D $ 1) -LSTR (ПОДСТАВИТЬ ($ D $ 1; D3; «»))) / DLSTR (D3)

С помощью DLSTR подсчитываем количество символов в ячейке со списком товаров ($ A $ 2)
Затем, используя ЗАМЕНА, замените указанное слово в указанном тексте пробелом «». Заменить все повторы по умолчанию. Фактически мы их устраняем.

Теперь наша задача — узнать, сколько слов мы удалили. С помощью DLSTR узнаем количество символов, оставшихся в списке после этой замены. Вычтите количество оставшихся символов из начального количества символов, т.е узнайте, сколько символов было удалено. Разделите результат на количество букв в поисковом слове.

Результат вы можете увидеть на скриншоте выше.

Подсчет дубликатов строк.

Чтобы найти общее количество повторяющихся строк, введите функцию СЧЁТЕСЛИ () вместо СЧЁТЕСЛИ () и укажите все столбцы, которые вы хотите сопоставить. Например, чтобы подсчитать повторяющиеся строки на основе столбцов A и B, введите следующую матричную формулу в лист Excel:

{= СТРОКИ ($ A $ 2: $ A $ 17) -SUM (IF (COUNTIF ($ A $ 2: $ A $ 17; $ A $ 2: $ A $ 17; $ B $ 2: $ B $ 17 ; $ B $ 2: $ B $ 17) = 1; 1; 0))}

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

Обратите внимание, что эта формула не заботится о местонахождении или порядке элементов в каждом диапазоне.

Функция СЧЁТЕСЛИ будет считать значения в диапазоне, которые соответствуют вашим критериям. Как правило, вы бы использовали СЧЁТ для диапазона A1: A10 и простой критерий, как «> 10». СЧЁТЕСЛИ затем рассчитывает количество ячеек в диапазоне A1: A10, которые больше, чем 10.

Однако, в этом случае, мы используем СЧЁТЕСЛИ для диапазона критериев. Мы не используем никаких логических операторов, а это значит, СЧЁТЕСЛИ будет проверять эквивалентности (т.е. он ведет себя так, как если бы мы использовали равенства (=) оператора).

Потому что мы даем СЧЁТЕСЛИ диапазон (также называемый «массив»), который содержит 7 пунктов, СЧЁТЕСЛИ рассчитывает массив из 7 элементов в качестве результата. Каждый элемент в массиве результатов представляет собой подсчет. В примере, это массив, который рассчитывает СЧЁТЕСЛИ выглядит следующим образом:

Поиск совпадений в двух списках

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

Исходные списки для сравнения

Для удобства, можно дать им имена, чтобы потом использовать их в формулах и ссылках. Для этого нужно выделить ячейки с элементами списка и на вкладке Формулы нажать кнопку Менеджер Имен — Создать (Formulas — Name Manager — Create). Также можно превратить таблицы в «умные» с помощью сочетания клавиш Ctrl+T или кнопки Форматировать как таблицу на вкладке Главная (Home — Format as Table).

Подсчет количества совпадений

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

Количество совпадений формулой

В английской версии это будет =SUMPRODUCT(COUNTIF(Список1;Список2))

Давайте разберем ее поподробнее, ибо в ней скрыто пару неочевидных фишек.

Во-первых, функция СЧЁТЕСЛИ (COUNTIF). Обычно она подсчитывает количество искомых значений в диапазоне ячеек и используется в следующей конфигурации:

=СЧЁТЕСЛИ(Где_искать; Что_искать)

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

Подсчет количества совпадений отдельным столбцом

Во-вторых, функция СУММПРОИЗВ (SUMPRODUCT) здесь выполняет две функции — суммирует вычисленные СЧЁТЕСЛИ совпадения и заодно превращает нашу формулу в формулу массива без необходимости нажимать сочетание клавиш Ctrl+Shift+Enter. Формула массива необходима, чтобы функция СЧЁТЕСЛИ в режиме с двумя аргументами-диапазонами корректно отработала свою задачу.

Вывод списка совпадений формулой массива

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

Вывод совпадений в двух списках формулой массива

В английской версии это будет, соответственно:

=INDEX(Список1;MATCH(1;COUNTIF(Список2;Список1)*NOT(COUNTIF($E$1:E1;Список1));0))

Логика работы этой формулы следующая:

  • фрагмент СЧЁТЕСЛИ(Список2;Список1), как и в примере до этого, ищет совпадения элементов из первого списка во втором
  • фрагмент НЕ(СЧЁТЕСЛИ($E$1:E1;Список1)) проверяет, не найдено ли уже текущее совпадение выше
  • и, наконец, связка функций ИНДЕКС и ПОИСКПОЗ извлекает совпадающий элемент

Не забудьте в конце ввода этой формулы нажать сочетание клавиш Ctrl+Shift+Enter, т.к. она должна быть введена как формула массива.

Возникающие на избыточных ячейках ошибки #Н/Д можно дополнительно перехватить и заменить на пробелы или пустые строки «» с помощью функции ЕСЛИОШИБКА (IFERROR).

Вывод списка совпадений с помощью слияния запросов Power Query

На больших таблицах формула массива из предыдущего способа может весьма ощутимо тормозить, поэтому гораздо удобнее будет использовать Power Query. Это бесплатная надстройка от Microsoft, способная загружать в Excel 2010-2013 и трансформировать практически любые данные. Мощь и возможности Power Query так велики, что Microsoft включила все ее функции по умолчанию в Excel начиная с 2016 версии. 

Для начала, нам необходимо загрузить наши таблицы в Power Query. Для этого выделим первый список и на вкладке Данные (в Excel 2016) или на вкладке Power Query (если она была установлена как отдельная надстройка в Excel 2010-2013) жмем кнопку Из таблицы/диапазона (From Table):

Загрузка списков в Power Query

Excel превратит нашу таблицу в «умную» и даст ей типовое имя Таблица1. После чего данные попадут в редактор запросов Power Query. Никаких преобразований с таблицей нам делать не нужно, поэтому можно смело жать в левом верхнем углу кнопку Закрыть и загрузить — Закрыть и загрузить в… (Close & Load To…) и выбрать в появившемся окне Только создать подключение (Create only connection):

Закрыть и загрузить в        Только подключение

Затем повторяем то же самое со вторым диапазоном.

И, наконец, переходим с выявлению совпадений. Для этого на вкладке Данные или на вкладке Power Query находим команду Получить данные — Объединить запросы — Объединить (Get Data — Merge Queries — Merge):

Объединение запросов в Power Query

В открывшемся окне делаем три вещи:

  1. выбираем наши таблицы из выпадающих списков
  2. выделяем столбцы, по которым идет сравнение
  3. выбираем Тип соединения = Внутреннее (Inner Join)

Слияние для выявления совпадающих строк

После нажатия на ОК на экране останутся только совпадающие строки:

Результат слияния

Ненужный столбец Таблица2 можно правой кнопкой мыши удалить, а заголовок первого столбца переименовать во что-то более понятное (например Совпадения). А затем выгрузить полученную таблицу на лист, используя всё ту же команду Закрыть и загрузить (Close & Load):

Выгрузка результатов на лист

Если значения в исходных таблицах в будущем будут изменяться, то необходимо не забыть обновить результирующий список совпадений правой кнопкой мыши или сочетанием клавиш Ctrl+Alt+F5

Макрос для вывода списка совпадений

Само-собой, для решения задачи поиска совпадений можно воспользоваться и макросом. Для этого нажмите кнопку Visual Basic на вкладке Разработчик (Developer). Если ее не видно, то отобразить ее можно через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).

В окне редактора Visual Basic нужно добавить новый пустой модуль через меню Insert — Module и затем скопировать туда код нашего макроса:

Sub Find_Matches_In_Two_Lists()
    Dim coll As New Collection
    Dim rng1 As Range, rng2 As Range, rngOut As Range
    Dim i As Long, j As Long, k As Long

    Set rng1 = Selection.Areas(1)
    Set rng2 = Selection.Areas(2)
    Set rngOut = Application.InputBox(Prompt:="Выделите ячейку, начиная с которой нужно вывести совпадения", Type:=8)

    'загружаем первый диапазон в коллекцию
    For i = 1 To rng1.Cells.Count
        coll.Add rng1.Cells(i), CStr(rng1.Cells(i))
    Next i
    
    'проверяем вхождение элементов второго диапазона в коллекцию
    k = 0
    On Error Resume Next
    For j = 1 To rng2.Cells.Count
        Err.Clear
        elem = coll.Item(CStr(rng2.Cells(j)))
        If CLng(Err.Number) = 0 Then
            'если найдено совпадение, то выводим со сдвигом вниз
            rngOut.Offset(k, 0) = rng2.Cells(j)
            k = k + 1
        End If
    Next j
End Sub

Воспользоваться добавленным макросом очень просто. Выделите, удерживая клавишу Ctrl, оба диапазона и запустите макрос кнопкой Макросы на вкладке Разработчик (Developer) или сочетанием клавиш Alt+F8. Макрос попросит указать ячейку, начиная с которой нужно вывести список совпадений и после нажатия на ОК сделает всю работу:

Макрос поиска совпадений в двух списках

Более совершенный макрос подобного типа есть, кстати, в моей надстройке PLEX для Microsoft Excel.

Ссылки по теме

  • Поиск различий в двух списках Excel
  • Слияние двух списков без дубликатов (3 способа)
  • Что такое макросы, как их использовать, куда копировать код макросов на Visual Basic

Понравилась статья? Поделить с друзьями:
  • Excel найти количество слов в ячейке
  • Excel найти все ячейки с цифрами
  • Excel найти значение по позиции
  • Excel найти количество положительных значений
  • Excel найти значение по нескольким параметрам