Spis treści
Samouczek pokazuje, jak używać formuły VLOOKUP w Excelu do porównywania dwóch kolumn, aby zwrócić wspólne wartości (dopasowania) lub znaleźć brakujące dane (różnice).
Kiedy masz dane na dwóch różnych listach, często możesz potrzebować ich porównania, aby zobaczyć, jakich informacji brakuje na jednej z list lub jakie dane są obecne w obu. Porównanie może być wykonane na wiele różnych sposobów - to, której metody użyć, zależy od tego, czego dokładnie chcesz od niego.
Jak porównać dwie kolumny w Excelu za pomocą VLOOKUP
Gdy mamy dwie kolumny danych i chcemy dowiedzieć się, które punkty danych z jednej listy występują na drugiej liście, możemy użyć funkcji VLOOKUP do porównania list pod kątem wspólnych wartości.
Aby zbudować formułę VLOOKUP w jej podstawowej postaci, oto co musisz zrobić:
- Dla lookup_value (pierwszy argument), użyj najwyższej komórki z listy 1.
- Dla tablica (2. argument), dostarcz całą Listę 2.
- Dla col_index_num (3 argument), użyj 1, ponieważ w tablicy jest tylko jedna kolumna.
- Dla range_lookup (4 argument), ustaw FALSE - dokładne dopasowanie.
Załóżmy, że masz nazwiska uczestników w kolumnie A (Lista 1) i nazwiska tych, którzy przeszli przez rundy kwalifikacyjne w kolumnie B (Lista 2). Chcesz porównać te 2 listy, aby określić, którzy uczestnicy z grupy A dostali się do głównego wydarzenia. Aby to zrobić, użyj następującej formuły.
=VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
Formuła trafia do komórki E2, a następnie przeciągasz ją w dół przez tyle komórek, ile jest pozycji na liście 1.
Proszę zauważyć, że tablica jest zablokowana referencjami bezwzględnymi ($C$2:$C$9), dzięki czemu pozostaje niezmienna po skopiowaniu formuły do poniższych komórek.
Jak widać, nazwiska zakwalifikowanych zawodników pojawiają się w kolumnie E. Dla pozostałych uczestników pojawia się błąd #N/A informujący, że ich nazwiska nie są dostępne na liście 2.
Disguise #N/A błędy
Omówiona powyżej formuła VLOOKUP doskonale spełnia swój główny cel - zwraca wspólne wartości i identyfikuje brakujące punkty danych. Dostarcza jednak garść błędów #N/A, które mogą zmylić niedoświadczonych użytkowników, dając im do zrozumienia, że coś jest nie tak z formułą.
Aby zastąpić błędy z puste komórki , użyj VLOOKUP w połączeniu z funkcją IFNA lub IFERROR w ten sposób:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Nasza ulepszona formuła zwraca pusty ciąg ("") zamiast #N/A. Możesz również zwrócić swój niestandardowy tekst takie jak "Nie ma na liście 2", "Nie ma", czy "Niedostępne". Na przykład:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "Nie w liście 2")
Tak wygląda podstawowa formuła VLOOKUP do porównywania dwóch kolumn w Excelu. W zależności od konkretnego zadania można ją modyfikować, co pokazują kolejne przykłady.
Porównaj dwie kolumny w różnych arkuszach Excela za pomocą VLOOKUP
W prawdziwym życiu kolumny, które musisz porównać, nie zawsze znajdują się na tym samym arkuszu. W małym zbiorze danych możesz spróbować dostrzec różnice ręcznie, oglądając dwa arkusze obok siebie.
Aby wyszukać w innym arkuszu lub skoroszycie formuły, musisz użyć zewnętrznego odwołania. Najlepszą praktyką jest rozpoczęcie wpisywania formuły w głównym arkuszu, a następnie przełączenie się do innego arkusza i wybranie listy za pomocą myszy - odpowiednie odwołanie do zakresu zostanie dodane do formuły automatycznie.
Zakładając, że lista 1 znajduje się w kolumnie A na Plansza1. a wykaz 2 znajduje się w kolumnie A na Plansza2 , możesz porównać dwie kolumny i znaleźć mecze za pomocą tej formuły:
=IFNA(VLOOKUP(A2, Sheet2!$A$2:$A$9, 1, FALSE), "")
Więcej informacji można znaleźć w:
- VLOOKUP z innego arkusza
- VLOOKUP z innego skoroszytu
Porównaj dwie kolumny i zwróć wspólne wartości (dopasowania)
W poprzednich przykładach omówiliśmy formułę VLOOKUP w jej najprostszej postaci:
=IFNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE), "")
Wynikiem działania tej formuły jest lista wartości występujących w obu kolumnach oraz puste komórki w miejscu wartości niedostępnych w drugiej kolumnie.
Aby uzyskać listę wspólnych wartości bez luk, wystarczy dodać auto-filtr do kolumny wynikowej i odfiltrować puste miejsca.
W programie Excel dla Microsoft 365 i Excel 2021, które obsługują tablice dynamiczne, można wykorzystać funkcję FILTER do dynamicznego odsiewania pustych miejsc. W tym celu należy wykorzystać formułę IFNA VLOOKUP jako kryteria dla FILTERA:
=FILTER(A2:A14, IFNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE), "")")
Proszę zwrócić uwagę, że w tym przypadku dostarczamy całą listę 1 (A2:A14) do lookup_value Funkcja porównuje każdą z wartości lookup z listą 2 (C2:C9) i zwraca tablicę dopasowań oraz błędy #N/A reprezentujące brakujące wartości. Funkcja IFNA zastępuje błędy pustymi łańcuchami i przekazuje wyniki do funkcji FILTER, która odfiltrowuje puste miejsca ("") i jako wynik końcowy podaje tablicę dopasowań.
Alternatywnie można użyć funkcji ISNA do sprawdzenia wyniku VLOOKUP i odfiltrować pozycje oceniające na FALSE, czyli wartości inne niż błędy #N/A:
=FILTER(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE))=FALSE)
Ten sam wynik można osiągnąć za pomocą funkcji XLOOKUP, co jeszcze bardziej upraszcza formułę. Ze względu na zdolność XLOOKUP do wewnętrznej obsługi błędów #N/A (opcjonalnie jeśli_nie_znaleziono argument), możemy obejść się bez opakowania IFNA lub ISNA:
=FILTER(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9,"")")
Porównaj dwie kolumny i znajdź brakujące wartości (różnice)
Aby porównać 2 kolumny w Excelu, aby znaleźć różnice, możesz postępować w ten sposób:
- Napisz formułę rdzenia wyszukującą pierwszą wartość z listy 1 (A2) w liście 2 ($C$2:$C$9):
VLOOKUP(A2, $C$2:$C$9, 1, FALSE)
- Zagnieżdż powyższy wzór w funkcji ISNA, aby sprawdzić wyjście VLOOKUP pod kątem błędów #N/A. W przypadku błędu ISNA daje TRUE, w przeciwnym razie FALSE:
ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE))
- Użyj formuły ISNA VLOOKUP do testu logicznego funkcji JEŻELI. Jeśli test oceni się na TRUE (błąd #N/A), zwróć wartość z listy 1 w tym samym wierszu. Jeśli test oceni się na FALSE (znaleziono dopasowanie w liście 2), zwróć pusty łańcuch.
Pełna formuła przyjmuje taką postać:
=IF(ISNA(VLOOKUP(A2, $C$2:$C$9, 1, FALSE)), A2, "")
Aby pozbyć się pustych miejsc, zastosuj Filtr Excela, jak pokazano w powyższym przykładzie.
W Excelu 365 i Excelu 2021 można mieć listę wyników filtrowaną dynamicznie. W tym celu wystarczy umieścić formułę ISNA VLOOKUP w włącz argument funkcji FILTER:
=FILTER(A2:A14, ISNA(VLOOKUP(A2:A14, C2:C9, 1, FALSE))
Innym sposobem jest użycie XLOOKUP do kryteriów - funkcja zwraca puste ciągi ("") dla brakujących punktów danych, a Ty filtrujesz wartości z listy 1, dla których XLOOKUP zwrócił puste ciągi (=""):
=FILTER(A2:A14, XLOOKUP(A2:A14, C2:C9, C2:C9,"")="")
Formuła VLOOKUP do identyfikacji zgodności i różnic pomiędzy dwoma kolumnami
Jeśli chcesz dodać do pierwszej listy etykiety tekstowe wskazujące, które wartości są dostępne na drugiej liście, a które nie, użyj formuły VLOOKUP wraz z funkcjami JEŻELI i ISNA/ISERROR.
Na przykład, aby zidentyfikować nazwy, które znajdują się zarówno w kolumnach A i D, jak i te, które znajdują się tylko w kolumnie A, formuła brzmi:
=IF(ISNA(VLOOKUP(A2, $D$2:$D$9, 1, FALSE)), "Nie zakwalifikowany", "Zakwalifikowany")
Tutaj funkcja ISNA wyłapuje błędy #N/A generowane przez VLOOKUP i przekazuje ten pośredni wynik do funkcji IF, aby zwróciła ona określony tekst dla błędów i inny tekst dla udanych wyszukiwań.
W tym przykładzie użyliśmy etykiet "Not qualified"/"Qualified", które są odpowiednie dla naszego przykładowego zbioru danych. Możesz je zastąpić etykietami "Not in List 2"/"In List 2", "Not available"/"Available" lub dowolnymi innymi, które uznasz za stosowne.
Formułę tę najlepiej wstawić do kolumny sąsiadującej z Listą 1 i skopiować przez tyle komórek, ile jest pozycji na Twojej liście.
Jeszcze jednym sposobem na określenie dopasowań i różnic w 2 kolumnach jest użycie funkcji MATCH:
=IF(ISNA(MATCH(A2, $D$2:$D$9, 0)), "Nie w liście 2", "W liście 2")
Porównaj 2 kolumny i zwróć wartość z trzeciej
Podczas pracy z tabelami zawierającymi powiązane dane, czasami możesz potrzebować porównać dwie kolumny w dwóch różnych tabelach i zwrócić pasującą wartość z innej kolumny. W rzeczywistości jest to podstawowe zastosowanie funkcji VLOOKUP, cel, do którego została zaprojektowana.
Na przykład, aby porównać nazwy w kolumnach A i D w dwóch poniższych tabelach i zwrócić czas z kolumny E, formuła jest:
=VLOOKUP(A3, $D$3:$E$10, 2, FALSE)
Aby ukryć błędy #N/A, skorzystaj ze sprawdzonego rozwiązania - funkcji IFNA:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "")
Zamiast pustych miejsc, możesz zwrócić dowolny tekst, który chcesz dla brakujących punktów danych - po prostu wpisz go w ostatnim argumencie.Na przykład:
=IFNA(VLOOKUP(A3, $D$3:$E$10, 2, FALSE), "Niedostępne")
Oprócz VLOOKUP, zadanie to można spełnić za pomocą kilku innych funkcji lookup.
Osobiście polegałbym na bardziej elastycznej formule INDEX MATCH:
=IFNA(INDEX($E$3:$E$10, MATCH(A3, $D$3:$D$10, 0)), "")
Możesz też skorzystać z nowoczesnego następcy VLOOKUP - funkcji XLOOKUP, dostępnej w Excelu 365 i Excelu 2021:
=XLOOKUP(A3, $D$3:$D$10, $E$3:$E$10, "")
Aby uzyskać nazwiska zakwalifikowanych uczestników z grupy A i ich wyniki, wystarczy odfiltrować puste komórki w kolumnie B:
=FILTER(A3:B15, B3:B15"")
Narzędzia do porównywania
Jeśli często robisz porównania plików lub danych w Excelu, te inteligentne narzędzia zawarte w naszym pakiecie Ultimate Suite mogą ogromnie zaoszczędzić Twój czas!
Porównaj tabele - szybki sposób na znalezienie duplikatów (dopasowań) i unikalnych wartości (różnic) w dowolnych dwóch zestawach danych, takich jak kolumny, lista czy tabele.
Compare Two Sheets - znajdź i podkreśl różnice między dwoma arkuszami.
Porównaj wiele arkuszy - znajdź i podkreśl różnice w wielu arkuszach jednocześnie.
Zeszyt ćwiczeń do pobrania
VLOOKUP w Excelu do porównywania kolumn - przykłady (plik .xlsx)