Съдържание
В урока е показано как да използвате формулата VLOOKUP в Excel за сравняване на две колони, за да върнете общи стойности (съвпадения) или да намерите липсващи данни (разлики).
Когато разполагате с данни в два различни списъка, често може да се наложи да ги сравните, за да видите каква информация липсва в единия от списъците или какви данни присъстват и в двата. Сравняването може да се извърши по много различни начини - кой метод да използвате зависи от това какво точно искате от него.
Как да сравнявате две колони в Excel с помощта на VLOOKUP
Когато имате две колони с данни и искате да разберете кои точки от единия списък съществуват в другия списък, можете да използвате функцията VLOOKUP, за да сравните списъците за общи стойности.
За да създадете формула VLOOKUP в нейната основна форма, трябва да направите следното:
- За lookup_value (1-ви аргумент), използвайте най-горната клетка от списък 1.
- За table_array (2-ри аргумент), предоставете целия списък 2.
- За col_index_num (3-ти аргумент), използвайте 1, тъй като в масива има само една колона.
- За range_lookup (4-ти аргумент), задайте FALSE - точно съвпадение.
Да предположим, че имате имената на участниците в колона А (списък 1) и имената на преминалите през квалификационните кръгове в колона Б (списък 2). Искате да сравните тези два списъка, за да определите кои участници от група А са стигнали до основното събитие. За целта използвайте следната формула.
=VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
Формулата отива в клетка E2 и след това я плъзгате надолу през толкова клетки, колкото са елементите в Списък 1.
Моля, обърнете внимание, че table_array е заключена с абсолютни препратки ($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 е в колона А на Лист1 а списък 2 е в колона А на Лист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:
=ФИЛТЪР(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 (по избор) if_not_found аргумент), можем да минем без обвивката 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 е върнала празни низове (=""):
=ФИЛТЪР(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)), "Not qualified", "Qualified")
Тук функцията ISNA улавя грешките #N/A, генерирани от VLOOKUP, и предава този междинен резултат на функцията IF, за да върне посочения текст за грешки и друг текст за успешни търсения.
В този пример използвахме етикетите "Not qualified"/"Qualified", които са подходящи за нашия примерен набор от данни. Можете да ги замените с "Not in List 2"/"In List 2", "Not available"/"Available" или други етикети, които смятате за подходящи.
Най-добре е тази формула да се вмъкне в колона, съседна на Списък 1, и да се копира в толкова клетки, колкото са елементите в списъка.
Още един начин за идентифициране на съвпадения и разлики в 2 колони е използването на функцията 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, "")
За да получите имената на квалифицираните участници от група А и техните резултати, просто филтрирайте празните клетки в колона Б:
=ФИЛТЪР(A3:B15, B3:B15"")
Инструменти за сравнение
Ако често сравнявате файлове или данни в Excel, тези интелигентни инструменти, включени в нашия Ultimate Suite, могат да ви спестят много време!
Сравняване на таблици - бърз начин за намиране на дубликати (съвпадения) и уникални стойности (разлики) в два набора от данни, например колони, списъци или таблици.
Сравняване на два листа - открийте и подчертайте разликите между два работни листа.
Сравняване на няколко листа - открийте и подчертайте разликите в няколко листа едновременно.
Практическа работна тетрадка за изтегляне
VLOOKUP в Excel за сравняване на колони - примери (.xlsx файл)