Оглавление
В учебнике показано, как использовать формулу VLOOKUP в Excel для сравнения двух столбцов, чтобы вернуть общие значения (совпадения) или найти недостающие данные (различия).
Когда у вас есть данные в двух разных списках, вам часто может понадобиться сравнить их, чтобы увидеть, какая информация отсутствует в одном из списков или какие данные присутствуют в обоих. Сравнение может быть выполнено различными способами - какой метод использовать, зависит от того, что именно вы хотите от него получить.
Как сравнить два столбца в Excel с помощью VLOOKUP
Когда у вас есть два столбца данных и вы хотите выяснить, какие точки данных из одного списка существуют в другом списке, вы можете использовать функцию VLOOKUP для сравнения списков на предмет общих значений.
Чтобы построить формулу VLOOKUP в ее базовой форме, вот что вам нужно сделать:
- Для lookup_value (1-й аргумент), используйте самую верхнюю ячейку из списка 1.
- Для массив_таблиц (2-й аргумент), предоставить весь список 2.
- Для col_index_num (3-й аргумент), используйте 1, так как в массиве только один столбец.
- Для range_lookup (4-й аргумент), установите FALSE - точное совпадение.
Предположим, у вас есть имена участников в столбце A (список 1) и имена тех, кто прошел через квалификационные раунды, в столбце B (список 2). Вы хотите сравнить эти два списка, чтобы определить, какие участники из группы A прошли в основное соревнование. Для этого используйте следующую формулу.
=VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
Формула попадает в ячейку E2, а затем вы перетаскиваете ее вниз через столько ячеек, сколько элементов в Списке 1.
Обратите внимание, что массив_таблиц фиксируется с помощью абсолютных ссылок ($C$2:$C$9), чтобы она оставалась постоянной при копировании формулы в нижележащие ячейки.
Как вы видите, имена квалифицированных спортсменов отображаются в столбце E. Для остальных участников появляется ошибка #N/A, указывающая на то, что их имена отсутствуют в Списке 2.
Маскировка #N/A ошибки
Рассмотренная выше формула VLOOKUP прекрасно справляется со своей основной задачей - возвращает общие значения и определяет недостающие точки данных. Однако она выдает кучу ошибок #N/A, что может сбить с толку неопытных пользователей и заставить их думать, что с формулой что-то не так.
Чтобы заменить ошибки на пустые ячейки , используйте VLOOKUP в сочетании с функцией IFNA или IFERROR таким образом:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Наша улучшенная формула возвращает пустую строку ("") вместо #N/A. Вы также можете вернуть свой пользовательский текст например, "Нет в списке 2", "Не присутствует" или "Нет в наличии". Например:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "Нет в списке 2")
Это основная формула VLOOKUP для сравнения двух столбцов в Excel. В зависимости от вашей конкретной задачи, она может быть изменена, как показано в дальнейших примерах.
Сравните два столбца в разных листах Excel с помощью VLOOKUP
В реальной жизни столбцы, которые нужно сравнить, не всегда находятся на одном листе. В небольшом наборе данных можно попробовать обнаружить различия вручную, просмотрев два листа рядом друг с другом.
Для поиска в другом рабочем листе или рабочей книге с формулами необходимо использовать внешнюю ссылку. Лучше всего начать вводить формулу на своем основном листе, затем переключиться на другой рабочий лист и выделить список с помощью мыши - соответствующая ссылка на диапазон будет добавлена в формулу автоматически.
Предполагая, что список 1 находится в столбце A на Лист1 и список 2 находится в колонке A на Лист2 Вы можете сравнить два столбца и найти совпадения, используя эту формулу:
=IFNA(VLOOKUP(A2, Sheet2!$A$2:$A$9, 1, FALSE), "")
Более подробную информацию см:
- VLOOKUP с другого листа
- VLOOKUP из другой рабочей книги
Сравнить два столбца и вернуть общие значения (совпадения)
В предыдущих примерах мы рассмотрели формулу VLOOKUP в ее простейшей форме:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Результатом этой формулы является список значений, существующих в обоих столбцах, и пустые ячейки на месте значений, отсутствующих во втором столбце.
Чтобы получить список общих значений без пробелов, просто добавьте автофильтр к результирующему столбцу и отфильтруйте пробелы.
В Excel для Microsoft 365 и Excel 2021, поддерживающих динамические массивы, вы можете использовать функцию FILTER для динамического отсеивания пустых данных. Для этого используйте формулу IFNA VLOOKUP в качестве критерия для FILTER:
=FILTER(A2:A14, IFNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE), "")"")
Обратите внимание, что в этом случае мы поставляем весь список 1 (A2:A14) в lookup_value Функция сравнивает каждое из значений поиска со списком 2 (C2:C9) и возвращает массив совпадений и ошибки #N/A, представляющие отсутствующие значения. Функция IFNA заменяет ошибки пустыми строками и передает результаты функции FILTER, которая отфильтровывает пробелы ("") и выводит массив совпадений в качестве окончательного результата.
В качестве альтернативы можно использовать функцию ISNA для проверки результата VLOOKUP и отфильтровать элементы, оценивающие FALSE, т.е. значения, отличные от ошибок #N/A:
=FILTER(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE))=FALSE)
Того же результата можно достичь с помощью функции XLOOKUP, что делает формулу еще проще. Благодаря способности XLOOKUP внутренне обрабатывать ошибки #N/A (опционально если_не_найдено аргумент), мы можем обойтись без обертки IFNA или ISNA:
=FILTER(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9,"")"")
Сравните два столбца и найдите недостающие значения (различия)
Чтобы сравнить 2 столбца в Excel и найти различия, можно поступить следующим образом:
- Напишите основную формулу для поиска первого значения из списка 1 (A2) в списке 2 ($C$2:$C$9):
VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
- Вложите приведенную выше формулу в функцию ISNA для проверки вывода VLOOKUP на наличие ошибок #N/A. В случае ошибки ISNA выдает TRUE, иначе FALSE:
ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE))
- Используйте формулу ISNA VLOOKUP для логического теста функции IF. Если тест оценивается как TRUE (ошибка #N/A), верните значение из списка 1 в той же строке. Если тест оценивается как FALSE (найдено соответствие в списке 2), верните пустую строку.
Полная формула имеет следующий вид:
=IF(ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE)), A2, "")
Чтобы избавиться от пробелов, примените фильтр Excel, как показано в примере выше.
В Excel 365 и Excel 2021 можно динамически фильтровать список результатов. Для этого просто поместите формулу ISNA VLOOKUP в файл включить аргумент функции FILTER:
=FILTER(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE)))
Другой способ заключается в использовании XLOOKUP для критериев - функция возвращает пустые строки ("") для отсутствующих точек данных, и вы фильтруете значения в Списке 1, для которых XLOOKUP вернула пустые строки (=""):
=FILTER(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9,"")="")
Формула VLOOKUP для выявления совпадений и различий между двумя столбцами
Если вы хотите добавить в первый список текстовые метки, указывающие, какие значения доступны во втором списке, а какие нет, используйте формулу VLOOKUP вместе с функциями IF и ISNA/ISERROR.
Например, чтобы определить имена, которые находятся в столбцах A и D, и имена, которые находятся только в столбце A, используется следующая формула:
=IF(ISNA(VLOOKUP(A2, $D$2:$D$9, 1, FALSE)), "Не квалифицирован", "Квалифицирован")
Здесь функция ISNA перехватывает ошибки #N/A, генерируемые VLOOKUP, и передает этот промежуточный результат функции IF, чтобы она вернула указанный текст для ошибок и другой текст для успешного поиска.
В этом примере мы использовали метки "Not qualified"/"Qualified", которые подходят для нашего набора данных. Вы можете заменить их на "Not in List 2"/"In List 2", "Not available"/"Available" или любые другие метки, которые вы считаете нужными.
Эту формулу лучше всего вставить в столбец, смежный со списком 1, и скопировать через столько ячеек, сколько элементов в вашем списке.
Еще один способ выявления совпадений и различий в двух столбцах - использование функции MATCH:
=IF(ISNA(MATCH(A2, $D$2:$D$9, 0)), "Нет в списке 2", "В списке 2")
Сравнить 2 столбца и вернуть значение из третьего
При работе с таблицами, содержащими связанные данные, вам иногда может понадобиться сравнить два столбца в двух разных таблицах и вернуть совпадающее значение из другого столбца. Фактически, это основное использование функции VLOOKUP, то есть цель, для которой она была разработана.
Например, чтобы сравнить имена в столбцах A и D в двух таблицах ниже и вернуть время из столбца E, используется следующая формула:
=VLOOKUP(A3, $D$3:$E$10, 2, FALSE)
Чтобы скрыть ошибки #N/A, используйте проверенное решение - функцию IFNA:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "")
Вместо пробелов вы можете вернуть любой текст для отсутствующих точек данных - просто введите его в последний аргумент. Например:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "Нет в наличии")
Кроме VLOOKUP, задачу можно решить с помощью нескольких других функций поиска.
Лично я полагался бы на более гибкую формулу INDEX MATCH:
=IFNA(INDEX($E$3:$E$10, MATCH(A3, $D$3:$D$10, 0)), "")
Или используйте современную преемницу VLOOKUP - функцию XLOOKUP, доступную в Excel 365 и Excel 2021:
=XLOOKUP(A3, $D$3:$D$10, $E$3:$E$10, "")
Чтобы получить имена квалифицированных участников из группы А и их результаты, просто отфильтруйте пустые ячейки в столбце B:
=FILTER(A3:B15, B3:B15"")
Инструменты сравнения
Если вы часто выполняете сравнение файлов или данных в Excel, эти интеллектуальные инструменты, включенные в наш пакет Ultimate Suite, помогут вам сэкономить время!
Сравнить таблицы - быстрый способ найти дубликаты (совпадения) и уникальные значения (различия) в любых двух наборах данных, таких как столбцы, список или таблицы.
Сравнить два листа - найти и выделить различия между двумя рабочими листами.
Сравнение нескольких листов - поиск и выделение различий сразу в нескольких листах.
Рабочая тетрадь для тренировок для скачивания
VLOOKUP в Excel для сравнения столбцов - примеры (файл.xlsx)