Porównanie dwóch kolumn w Excelu możesz wykonać na trzy sposoby: podświetlić różnice za pomocą formatowania warunkowego, oznaczyć wynik formułą albo zautomatyzować analizę makrem VBA. Wybór zależy od tego, czy potrzebujesz tylko szybkiego podglądu, czy także raportu i obsługi większej liczby danych.
Którą metodę wybrać?
| Metoda | Zastosowanie | Trudność |
|---|---|---|
| Formatowanie warunkowe | Szybkie podświetlanie duplikatów i różnic w arkuszu | Niska |
| Formuły | Oznaczanie zgodności w osobnej kolumnie i filtrowanie wyników | Niska |
| VBA | Automatyczne wyszukiwanie brakujących rekordów w większych zakresach | Średnia |
Porównanie kolumn za pomocą formatowania warunkowego
Formatowanie warunkowe jest najszybsze, gdy chcesz od razu zobaczyć, które wartości powtarzają się w dwóch kolumnach. Załóżmy, że dane znajdują się w zakresach A2:A100 i B2:B100.
Aby podświetlić wartości występujące w obu kolumnach:
- Zaznacz oba zakresy, na przykład A2:B100.
- Otwórz kartę Narzędzia główne i wybierz Formatowanie warunkowe.
- Przejdź do Reguły wyróżniania komórek, a następnie wybierz Duplikujące się wartości.
- Wybierz sposób wyróżnienia i zatwierdź przyciskiem OK.
Excel oznaczy wartości, które występują więcej niż raz w zaznaczonym zakresie. Ta metoda jest wygodna, gdy obie kolumny zawierają listy, a kolejność rekordów nie ma znaczenia.
Jeżeli chcesz podświetlić różnice tylko w drugim zakresie, zastosuj regułę opartą na formule:
- Zaznacz drugi zakres, na przykład H2:H100.
- Wybierz Narzędzia główne → Formatowanie warunkowe → Nowa reguła.
- Wybierz regułę pozwalającą użyć formuły lub warunku dla wartości komórki.
- Ustaw warunek nierówności względem pierwszej komórki pierwszego zakresu, na przykład
=G2. - Wybierz format wyróżnienia i zatwierdź regułę.
Adres G2 musi wskazywać pierwszą komórkę zakresu porównawczego. Jeśli pierwszy zakres zaczyna się w innej komórce, wpisz jej adres. Błędne wskazanie pierwszej komórki może spowodować przesunięcie porównania i nieprawidłowe kolory.
Porównanie dwóch kolumn za pomocą formuły
Formuła jest lepszym rozwiązaniem, gdy chcesz otrzymać jednoznaczny wynik w osobnej kolumnie, a następnie filtrować rekordy zgodne lub różniące się.
Załóżmy, że porównujesz komórki A2 i B2. W komórce C2 wpisz:
=JEŻELI(A2=B2; "OK"; "Różnica")
Funkcja JEŻELI sprawdza, czy wartości w tym samym wierszu są identyczne. Gdy warunek jest spełniony, pojawi się tekst „OK”, a w przeciwnym razie „Różnica”.
- Wpisz formułę w komórce C2.
- Naciśnij Enter.
- Chwyć uchwyt wypełniania w prawym dolnym rogu komórki.
- Przeciągnij go w dół do ostatniego wiersza danych.
Ta formuła porównuje wartości wiersz po wierszu. Jeśli kolejność rekordów w kolumnach jest różna, użyj wyszukiwania zamiast prostego porównania pozycji. Przy danych tekstowych zwróć uwagę na zbędne spacje, ponieważ Excel może potraktować tekst „ABC” i „ABC ” jako różne wartości.
Przed porównaniem możesz oczyścić dane funkcją USUŃ.ZBĘDNE.ODSTĘPY, na przykład:
Automatyczne porównanie kolumn za pomocą VBA
Makro VBA przydaje się, gdy regularnie porównujesz duże zakresy i chcesz zaznaczyć w kolumnie A rekordy, których nie ma w kolumnie B. Poniższy kod koloruje takie komórki na żółto.
Przed uruchomieniem makra utwórz kopię pliku. Następnie naciśnij Alt+F11, wybierz Wstawianie → Moduł i wklej kod:
Sub PorownajKolumny()
Dim kol_A As Range
Dim kol_B As Range
Dim znaleziono As Boolean
' Zakres pierwszej kolumny do sprawdzenia
For Each kol_A In Range("A2:A100")
' Pomijamy puste komórki
If kol_A.Value <> "" Then
znaleziono = False
' Zakres drugiej kolumny, w której szukamy wartości
For Each kol_B In Range("B2:B100")
If kol_A.Value = kol_B.Value Then
znaleziono = True
Exit For
End If
Next kol_B
' Kolorujemy wartości nieznalezione w kolumnie B
If znaleziono = False Then
kol_A.Interior.Color = RGB(255, 255, 0)
End If
End If
Next kol_A
End Sub
Zakresy A2:A100 i B2:B100 zastąp własnymi adresami. Pierwszy zakres określa rekordy, które mają zostać sprawdzone, a drugi wskazuje kolumnę, w której makro szuka odpowiedników.
Makro korzysta z pętli For Each. Dla każdej niepustej komórki z kolumny A przeszukuje kolumnę B. Jeśli znajdzie taką samą wartość, przechodzi do następnego rekordu. Gdy dopasowania nie ma, koloruje komórkę w kolumnie A.
Jeżeli zamiast koloru chcesz otrzymać opis w trzeciej kolumnie, zamień instrukcję kolorowania na:
kol_A.Offset(0, 2).Value = "Nie występuje"
Wtedy Excel wpisze komunikat dwie kolumny na prawo od sprawdzanej komórki, czyli na przykład w kolumnie C, gdy analizowana komórka znajduje się w kolumnie A.