Dostajesz od mamy listę zakupów. Ale potem dostajesz ją jeszcze raz. Wygląda niby tak samo, ale wyłapujesz pierwszą różnicę. Zamiast pietruszki jest rzodkiew, a zamiast cebuli butelka whisky. Ktoś w liście majstrował… Część pozycji jest poprzestawiana. Jak to ogarnąć by wyłapać wszystkie różnice i nie osiwieć?
Jeśli nie chcesz czytać, możesz od razu przejść do pliku roboczego i obejrzeć formuły.
Oto nasze listy:
Porównaj dwie listy stawiając je obok siebie i podświetlając różniące się komórki.
Prosta operacja, która pozwoli wyłapać, gdzie są zmienione wartości. Możemy ją wykonać poprzez formatowanie warunkowe.
Jak znaleźć elementy, które są tylko na jednej z list?
W tym celu użyjemy połączenia funkcji countif i if:
Jak to działa?
Formuła Countif zlicza wszystkie elementy spełniające określony warunek. Składnia: COUNTIF(zakres;warunek)
W tym wypadku sprawdzamy po kolei dla każdego elementu z kolumny B, ile jest identycznych elementów w kolumnie C. Jeśli jest ich zero to wypisujemy ten element, a jeśli countif znajdzie jeden lub więcej, zostawia puste miejsce (“”). ARRAYFORMULA pozwala wykonać test dla całej kolumny.
Jeśli chcemy by spis nie zawierał pustych komórek, tylko by wszystkie elementy występujące raz, pojawiły się na górze, możemy dołożyć jeszcze funkcję Query, która wytnie puste komórki:
Jak zrobić sumę dwóch list?
Chodzi o sytuację, gdy ktoś pozamieniał jakieś elementy, a zależy nam na tym, żeby mieć zarówno starą zawartość jak i nową w jednym miejscu zsumowaną.
Żeby napisać odpowiednią formułę, pomyślałem o tym jako o sumie dwóch zbiorów z wyeliminowaniem duplikatów.
Używam w tym celu funkcji UNIQUE, która eliminuje z zakresu danych duplikaty. Ale nie mogę podstawić dwóch kolumn obok siebie (B2:C). Muszę je ułożyć w jednej kolumnie. Używam do tego zapisu klamrowego {B2:B;C2} (szerzej o nim osobnym wpisie). I… gotowe!
Jak odnaleźć elementy, które zostały przesunięte?
Jeśli listy są szczególnie długie, a ktoś poprzestawiał elementy, możemy pomóc sobie poprzez wskazanie ich pozycji na nowej liście.
Kluczowa jest tutaj formuła MATCH (IFNA służy jedynie do zastąpienia komunikatów o błędach pustymi komórkami, a ARRAYFORMULA pozwala poszerzyć działanie MATCH na cały zakres).
MATCH(B2:B;C2:C;0) bierze po kolei każdą komórkę z zakresu B2:B i sprawdza jej pozycję w zakresie C2:C i podaje ją. Dzięki temu szybciej możemy ją odnaleźć.
Co zrobić gdy porównujemy listy składające się z większej liczby kolumn?
Jeśli mamy przykładowo dwie listy z imionami i nazwiskami, najlepiej najpierw skleić te kolumny tak, by imiona i nazwiska były w tej samej komórce.
Dalej możemy już postępować tak jak w pozostałych przypadkach. O łączeniu komórek możesz przeczytać więcej w osobnym wpisie.