Как найти совпадения в столбце excel
Перейти к содержимому

Как найти совпадения в столбце excel

  • автор:

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

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

    Выберите ячейки, которые нужно проверить на наличие повторений.

Примечание: В Excel не поддерживается выделение повторяющихся значений в области «Значения» отчета сводной таблицы.

  • Выберите Главная >условное форматирование >выделение правил ячеек >повторяющихся значений. Удаление дубликатов 1
  • В поле рядом со значениями выберите форматирование, которое нужно применить к повторяющимся значениям, а затем нажмите кнопку ОК.Удаление дубликатов 2
  • Удаление повторяющихся значений

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

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

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

  • Выберите Данные >Удалить дубликаты, а затем в разделе Столбцы проверка или снимите флажок столбцов, в которых нужно удалить дубликаты. Удаление дубликатов 3Например, на данном листе в столбце «Январь» содержатся сведения о ценах, которые нужно сохранить. Выделенные повторяющиеся значенияПоэтому флажок Январь в поле Удаление дубликатов нужно снять. Удаление дубликатов 5
  • Нажмите кнопку ОК.
  • Примечание: Количество повторяющихся и уникальных значений, заданных после удаления, может включать пустые ячейки, пробелы и т. д.

    Поиск значений в списке данных

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

    Что необходимо сделать

    • Точное совпадение значений по вертикали в списке
    • Подыыывка значений по вертикали в списке с помощью приблизительного совпадения
    • Подстановка значений по вертикали в списке неизвестного размера с использованием точного совпадения
    • Точное совпадение значений по горизонтали в списке
    • Подыыывка значений по горизонтали в списке с использованием приблизительного совпадения
    • Создание формулы подступа с помощью мастера подметок (только в Excel 2007)

    Точное совпадение значений по вертикали в списке

    Для этого можно использовать функцию ВLOOKUP или сочетание функций ИНДЕКС и НАЙТИПОЗ.

    Примеры ВРОТ

    Пример 1 функции ВПР

    Пример 2 функции ВПР

    Дополнительные сведения см. в этой информации.

    Примеры индексов и совпадений

    Функции ИНДЕКС и ПОИСКПОЗ можно использовать вместо функции ВПР

    =ИНДЕКС(нужно вернуть значение из C2:C10, которое будет соответствовать ПОИСКПОЗ(первое значение «Капуста» в массиве B2:B10))

    Формула ищет в C2:C10 первое значение, соответствующее значению «Ольга» B7), и возвращает значение в C7(100),которое является первым значением, которое соответствует значению «Ольга».

    Подыыывка значений по вертикали в списке с помощью приблизительного совпадения

    Для этого используйте функцию ВЛВП.

    Важно: Убедитесь, что значения в первой строке отсортировали в порядке возрастания.

    Пример формулы ВЛП, которая ищет приблизительное совпадение

    В примере выше ВРОТ ищет имя учащегося, у которого 6 просмотров в диапазоне A2:B7. В таблице нет записи для 6 просмотров, поэтому ВРОТ ищет следующее самое высокое совпадение меньше 6 и находит значение 5, связанное с именем Виктор,и таким образом возвращает Его.

    Дополнительные сведения см. в этой информации.

    Подстановка значений по вертикали в списке неизвестного размера с использованием точного совпадения

    Для этого используйте функции СМЕЩЕНИЕ и НАЙТИВМЕСЯК.

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

    Пример функций OFFSET и MATCH

    C1 — это левые верхние ячейки диапазона (также называемые начальной).

    MATCH(«Оранжевая»;C2:C7;0) ищет «Оранжевые» в диапазоне C2:C7. В диапазон не следует включать запускаемую ячейку.

    1 — количество столбцов справа от начальной ячейки, из которых должно быть возвращено значение. В нашем примере возвращается значение из столбца D, Sales.

    Точное совпадение значений по горизонтали в списке

    Для этого используйте функцию ГГПУ. См. пример ниже.

    Пример формулы ГВП, которая ищет точное совпадение

    Г ПРОСМОТР ищет столбец «Продажи» и возвращает значение из строки 5 в указанном диапазоне.

    Дополнительные сведения см. в сведениях о функции Г ПРОСМОТР.

    Подыыывка значений по горизонтали в списке с использованием приблизительного совпадения

    Для этого используйте функцию ГГПУ.

    Важно: Убедитесь, что значения в первой строке отсортировали в порядке возрастания.

    Пример формулы ГВП, которая ищет приблизительное совпадение

    В примере выше ГЛЕБ ищет значение 11000 в строке 3 указанного диапазона. Она не находит 11000, поэтому ищет следующее наибольшее значение меньше 1100 и возвращает значение 10543.

    Дополнительные сведения см. в сведениях о функции Г ПРОСМОТР.

    Создание формулы подступа с помощью мастера подметок (толькоExcel 2007 )

    Примечание: В Excel 2010 больше не будет надстройки #x0. Эта функция была заменена мастером функций и доступными функциями подменю и справки (справка).

    В Excel 2007 создается формула подытов на основе данных на основе данных на основе строк и столбцов. Если вы знаете значение в одном столбце и наоборот, мастер под поисков помогает находить другие значения в строке. В формулах, которые он создает, используются индекс и MATCH.

    1. Щелкните ячейку в диапазоне.
    2. На вкладке Формулы в группе Решения нажмите кнопку Под поиск.
    3. Если команда Подытов недоступна, вам необходимо загрузить мастер под надстройка подытогов. Загрузка надстройки «Мастер подстройок»
    4. Нажмите кнопку Microsoft Office , выберите Параметры Excel и щелкните категорию Надстройки.
    5. В поле Управление выберите элемент Надстройки Excel и нажмите кнопку Перейти.
    6. В диалоговом окне Доступные надстройки щелкните рядом с полем Мастер подстрок инажмите кнопку ОК.
    7. Следуйте инструкциям мастера.

    Сравнение данных в двух столбцах для поиска дубликатов в Excel

    Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Office для бизнеса Excel 2010 Excel 2007 Еще. Меньше

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

    Способ 1. Использование формулы рабочего листа

    1. Запустите Excel.
    2. В качестве примера введите в новом листе введите следующие данные (оставьте столбец B пустым):
    A B C
    1 1 3
    2 2 5
    3 3 8
    4 4 2
    5 5 0

    Повторяющиеся числа отображаются в столбце B, как в следующем примере:

    A B C
    1 1 3
    2 2 2 5
    3 3 3 8
    4 4 2
    5 5 5 0

    Способ 2. Использование макроса Visual Basic

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

    Чтобы использовать макрос Visual Basic для сравнения данных в двух столбцах, выполните действия, описанные в следующем примере.

    1. Запустите Excel.
    2. Нажмите ALT+F11, чтобы запустить редактор Visual Basic.
    3. В меню Вставка выберите Модуль.
    4. Введите следующий код на листе модуля:

    Sub Find_Matches() Dim CompareRange As Variant, x As Variant, y As Variant ' Set CompareRange equal to the range to which you will ' compare the selection. Set CompareRange = Range("C1:C5") ' NOTE: If the compare range is located on another workbook ' or worksheet, use the following syntax. ' Set CompareRange = Workbooks("Book2"). _ ' Worksheets("Sheet2").Range("C1:C5") ' ' Loop through each cell in the selection and compare it to ' each cell in CompareRange. For Each x In Selection For Each y In CompareRange If x = y Then x.Offset(0, 1) = x Next y Next x End Sub
      Введите в качестве примера следующие данные (оставьте столбец B пустым):
    A B C
    1 1 3
    2 2 5
    3 3 8
    4 4 2
    5 5 0

    Примечание: Если вы не видите вкладку Разработчик, возможно, вам понадобится включить ее. Для этого выберите Файл > Параметры > Настроить ленту, а затем выберите вкладку Разработчик в поле настройки справа.

    Повторяющиеся числа отображаются в столбце B. Совпадающие числа будут помещены рядом с первым столбцом, как показано здесь:

    A B C
    1 1 3
    2 2 2 5
    3 3 3 8
    4 4 2
    5 5 5 0

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

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

    Тема сравнения двух списков поднималась уже неоднократно и с разных сторон, но остается одной из самых актуальных везде и всегда. Давайте рассмотрим один из ее аспектов — подсчет количества и вывод совпадающих значений в двух списках. Предположим, что у нас есть два диапазона данных, которые мы хотим сравнить:
    Для удобства, можно дать им имена, чтобы потом использовать их в формулах и ссылках. Для этого нужно выделить ячейки с элементами списка и на вкладке Формулы нажать кнопку Менеджер Имен — Создать (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

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *