Часто в повседневной компьютерной деятельности возникает задача сравнения двух списков. Ситуации могут быть очень разными, списки могут быть какими угодно, например:
- Список покупок, занесенных в табличный процессор (Excel, LibreOffice Calc, Google Docs и т.п.);
- Список файлов, полученный копированием из Total Commander;
Вариантов огромное количество, цель одна – получить список отличий одного списка от другого.
Для решения такой задачи отлично подходят две программы: Excel или LibreOffice Calc.
В качестве «сравнителя» используется функция ВПР. Причем синтаксис, используемой функции настолько идентичен, что нет никакого различия какую программу использовать.
В качестве примера я возьму ситуацию, когда надо сравнить два списка файлов по названию. Предположим, у меня есть две папки с фотографиями и я хочу узнать каких файлов нет во второй папке относительно первой.
Приступаем.
Для получения списка файлов из папки я буду использовать поиск в Total Commander. Да, есть такая классная фича в Total Commander.
Открываю первую папку с фото и открываю стандартное окно поиска по ALT+F7, задаю маску поиска *.jpg для поиска только файлов фото.
В результате поиска в папке «Фото» было найдено 49 файлов. Чтобы скопировать список найденных файлов в буфер обмена нажимаем стандартную комбинацию клавиш CTRL+C.
Запускаем Excel. По умолчанию открывается пустая книга. На первом листе становимся в ячейку A1 и нажимаем стандартную комбинацию CTRL+V, чтобы вставить скопированный список.
Теперь нужно сделать поиск файлов во второй папке «Фото1». В результате поиска найдено 199 файлов. Копируем список через CTRL+C.
Скопированный список из второй папки вставляем в ячейку A1 на другой лист, в моем случае это «Лист2»
Теперь необходимо удалить из имен файлов пути, так как сравнивать нам необходимо имена файлов. Данная задача творческая, решить ее можно несколькими способами. Для этого примера я использую самый простой – это групповая замена. Так как у меня нет вложенных подпапок, то во всех именах файлов содержится один вид пути.
Итак, на листе «Лист1» я выделяю в любой ячейке кусочек строки «d:\Фото\», копирую его в буфер и нажатием ESC выхожу из режима редактирования.
Для групповой замены нажимаю CTRL+H. В стандартном окне замены в поле «Найти:» вставляю скопированный кусок строки. Поле «Заменить на:» оставляю пустым.
Нажимаю кнопку «Заменить все».
Контролирую процесс замены, сравнивая количество изначальных строк с количеством замен. В моем случае все отлично 49 строк и 49 замен.
Тоже самое проделываю и на втором листе.
В результате замен на двух листах остаются списки файлов без пути. Теперь их можно сравнивать.
Для сравнения используем функцию «ВПР».
В ячейке B1 листа «Лист1» нажимаю «=» и начинаю писать имя функции ВПР, открываю скобку «(«. Теперь Excel подсказывает мне синтаксис аргументов функции. Первым параметром мне нужно указать строку, которую я буду искать в другой области(«искомое_значение»). Я указываю ячейку A1.
Далее ставлю точку с запятой и указываю второй параметр «таблица». Под таблицей понимается область листа из нескольких столбцов. Поиск искомого значения будет происходить в первом столбце указанной области. В моем случае я просто указываю весь столбец A листа «Лист2». Чтобы указать весь столбец нажимаю на заголовок столбца когда курсор становится жирной стрелкой вниз.
Опять ставлю точку с запятой и указываю параметр «номер_столбца». Все столбцы в области поиска условно нумеруются от 1. Так как у меня в области поиска всего один столбец в параметре я ставлю 1.
Последний параметр, который я указываю, это «интервальный_просмотр». Суть его сводится к тому, как будет происходить поиск: точно или приблизительно. Для нашего сравнения обязательно нужно выбрать точное совпадение. Выбираю «ЛОЖЬ» — Точное совпадение.
Итоговая формула выглядит вот так
В нашем случае файл с таким именем есть во втором списке и функция ВПР нашла его и вернула значение из первого столбца области поиска, т.е. само имя файла.
Теперь осталось скопировать формулу для всех остальных строк на первом листе.
Следующим шагом будет установка фильтра по столбцу B на листе «Лист1». Выделяем весь столбец «B»
Затем нажимаем «Сортировка и фильтр» и выбираем пункт «Фильтр»
В результате получается вот такой вид на листе «Лист1»
Чтобы увидеть список файлов, которых нет во втором списке, надо раскрыть список фильтра и выделить только значение с типом «Н/Д»
В нашем случае таких файлов нет. Т.е. во втором списке есть все файлы из первого списка. Осталось установить функцию ВПР для всех строк на втором листе.
Обратите внимание на то, что в качестве области поиска указывается столбец «A» на «Лист1». Формулу копируем для всех строк листа «Лист2»
Устанавливаем фильтр на втором листе аналогично первому. После установки фильтра, в списке значений фильтра в самом конце обнаруживается значение «Н/Д». Строки, содержащие такое значение и указывают на файлы из второго списка, которых нет в первом.
Устанавливаем галочку на «Н/Д» и нажимаем «ОК». Все остальные галочки в фильтре снимаем.
В результате фильтрации мы видим список уникальных файлов второго списка, которых нет в первом.
Собственно, цель сравнения достигнута. Что делать с этим списком уже другой вопрос.
При сравнении в LibreOffice Calc формула ВПР выглядит абсолютно аналогично Excel
Автофильтр устанавливаем через меню «Данные»—«Автофильтр»
Видео по теме: