Jak porównać dwa arkusze kalkulacyjne Excel?

8

Chciałbym porównać dwa arkusze kalkulacyjne Excel

Oba mają te same kolumny, w tej samej kolejności, ale nie te same wiersze.

Mam arkusz kalkulacyjny z 1000 wierszy i 50 kolumnami, w tym unikalny identyfikator każdego wiersza i dane osobowe (adres, numer telefonu itp.).

Chcę to porównać z tą samą bazą wyodrębnioną rok temu.

Moim celem jest poznanie wszystkich zmian (na przykład osoby, która zmieniła adres).

Próbowałem z arkuszem kalkulacyjnym (jak wyjaśniono tutaj: Porównaj dwa pliki programu Excel ), ale to nie działa, ponieważ w moim „nowym” pliku mam nowe wiersze i mam kilka wierszy w starym pliku, które nie są w nowym.

Arkusz kalkulacyjny jest porównywany z numerem wiersza programu Excel. Czy można porównać z pierwszą kolumną (unikalny identyfikator)?

Oto bardzo uproszczony przykład: https://filebin.net/g4w98251y9mfwug6

Są dwa arkusze reprezentujące moje dwa arkusze kalkulacyjne.

Jak widać, obie mają te same kolumny, ale:

  • Istnieją wiersze na obu arkuszach bez zmian (cały wiersz jest taki sam)
  • Istnieją wiersze na obu arkuszach, ale są zmiany (na moim przykładzie na pomarańczowo)
  • Są wiersze, które są tylko w grudniowym arkuszu (nie muszę identyfikować tych wierszy)
  • Są wiersze, które są tylko w styczniowym arkuszu (w moim przykładzie na pomarańczowo)

Kolor pomarańczowy jest dokładnie tym, czego chcę, ale w tym przykładzie mogę to zrobić ręcznie: porównując grudzień i styczeń. W prawdziwych arkuszach kalkulacyjnych nie mogę tego zrobić ręcznie, ponieważ jest zbyt wiele zmian, danych, linii, kolumn itp. I zrobię to co miesiąc.

Jest tylko jedna kolumna, której nigdy nie można zmienić: kolumna A.

CILUEA
źródło
Do Twojej wiadomości, ludzie nie lubią pobierać plików, zwłaszcza gdy są publikowane przez nieznanych użytkowników. Nie twierdzę, że nie powinieneś przesyłać plików i zamieszczać do nich linków, ale postaraj się, aby twoje pytanie pozostało samo w sobie - powinno być możliwe zrozumienie go bez patrzenia na pliki. Naprawdę uważam, że twoje pytanie jest w porządku; Byłem w stanie odpowiedzieć na to pytanie, nie patrząc na plik. Ale oczywiście pytania (szczególnie pytania Excela) są bardziej przejrzyste na przykładowych danych. … (Ciąg dalszy)
Scott
1
(Ciąg dalszy)… Wolimy, abyś opublikował tekstową reprezentację swoich danych, tak jak zrobiono tu i tutaj ; jeśli chcesz, użyj Formatuj tekst jako witrynę tabelową lub witrynę Generator tabel zwykłego tekstu . Sugeruję, że dane, które wykorzystałem w mojej odpowiedzi, są po prostu właściwą kwotą: jeden wiersz w każdej z czterech kategorii określonych w pytaniu.
Scott
Jest tam ładne narzędzie Excel Compare. Może porównać 2 pliki Excela i wylogować się z różnic. Możesz także wypróbować Araxis Merge, chociaż nie jest to darmowe.
Kromster

Odpowiedzi:

4

Wygodnie jest, że arkusz kalkulacyjny używa 50 kolumn, ponieważ oznacza to, że kolumny 51, 52,… są dostępne. Twój problem można dość łatwo rozwiązać za pomocą „kolumny pomocniczej”, którą możemy umieścić w kolumnie  AZ(która jest kolumną nr 52). Będę zakładać, że rząd 1 na każdym z arkuszy zawiera nagłówki (The słowaID , Name, Address, itd), więc nie trzeba porównać te (ponieważ twoje kolumny są w takiej samej kolejności w obu arkuszy). Zakładam również, że ID(unikalny identyfikator) znajduje się w kolumnie  A. (Jeśli tak nie jest, odpowiedź staje się trochę bardziej skomplikowane, ale wciąż dość łatwe). W komórce  AZ2(dostępnej kolumnie, w pierwszym rzędzie stosować dla danych), wprowadź

=B2&C2&D2&…&X2&Y2&Z2&AA2&AB2&AC3&…&AX2

wyświetlając wszystkie komórki od  B2do  AX2&jest operatorem konkatenacji tekstu, więc jeśli B2zawiera Andyi C2zawiera New York, to B2&C2oceni na AndyNew York. Podobnie powyższa formuła połączy wszystkie dane dla wiersza (z wyjątkiem ID), dając wynik, który może wyglądać mniej więcej tak:

AndyNew York1342 Wall StreetInvestment BankerElizabeth2catcollege degreeUCLA…

Formuła jest długa i nieporęczna do pisania, ale musisz to zrobić tylko raz (ale zanim to zrobisz, przeczytaj notatkę poniżej). Pokazałem, że to przechodzi, AX2ponieważ Kolumna  AXto kolumna nr 50. Oczywiście formuła powinna obejmować każdą kolumnę danych inną niż ID. Mówiąc dokładniej, powinna zawierać każdą kolumnę danych, którą chcesz porównać. Jeśli masz kolumnę dotyczącą wieku danej osoby, to (automatycznie?) Będzie ona inna dla każdego roku i nie będziesz chciał tego zgłaszać. Oczywiście kolumna pomocnicza, która zawiera formułę konkatenacji, powinna znajdować się po prawej stronie ostatniej kolumny danych.

Teraz wybierz komórkę  AZ2i przeciągnij ją / wypełnij w dół przez wszystkie 1000 wierszy. I zrób to w obu arkuszach.

Na koniec w arkuszu, w którym chcesz wyróżnić zmiany (wydaje mi się, że z tego, co mówisz, że jest to najnowszy arkusz), wybierz wszystkie komórki, które chcesz wyróżnić. Nie wiem, czy to jest tylko kolumna  A, lub po prostu kolumna  Blub cały rząd (czyli Aprzez  AX). Wybierz te komórki w wierszach od 2 do 1000 (lub tam, gdzie dane mogą ostatecznie dotrzeć) i przejdź do „Formatowania warunkowego” → „Nowa reguła…”, wybierz „Użyj formuły, aby określić, które komórki sformatować”, i wprowadź

=IFERROR(VLOOKUP($A2,'December 2017'!$A$2:$AZ$1000,52,FALSE), "") <> $AZ2

w polu „Formatuj wartości, w których ta formuła jest prawdziwa”. Pobiera IDwartość z bieżącego wiersza bieżącego arkusza („stycznia 2018 r.”) (W komórce  $A2), wyszukuje ją w kolumnie  Apoprzedniego arkusza („grudnia 2017 r.”), Pobiera skonkatenowaną wartość danych z tego wiersza i porównuje ją do skonkatenowanej wartości danych w tym wierszu. (Oczywiście AZjest to kolumna pomocnicza, 52to numer kolumny pomocniczej i 1000jest ostatnim wierszem w arkuszu „Grudzień 2017”, który zawiera dane - lub nieco wyższy; np. Możesz wpisać 1200zamiast martwić się o dokładność.) Następnie kliknij „Format” i określ żądane formatowanie warunkowe (np. Pomarańczowe wypełnienie).

Zrobiłem przykład z tylko kilkoma wierszami i tylko kilkoma kolumnami danych, z kolumną pomocniczą w kolumnie  H:

poprzedni arkusz miesiąc / rok (grudzień 2017 r.)

bieżący arkusz miesiąc / rok (styczeń 2018), ze zmianami zaznaczonymi na pomarańczowo

Zauważ, że rząd Andy'ego ma kolor pomarańczowy, ponieważ przeniósł się z Nowego Jorku do Los Angeles, a rząd Debry ma kolor pomarańczowy, ponieważ ona jest nowym wpisem.

Uwaga:   jeśli wiersz może mieć wartości takie jak theiw reactdwóch kolejnych kolumnach, a to może zmienić się w następnym roku na therei act, nie byłoby to zgłaszane jako różnica, ponieważ po prostu porównujemy skonkatenowaną wartość, a to ( thereact) jest to samo na obu arkuszach. Jeśli martwisz się tym, wybierz znak, który prawdopodobnie nigdy nie będzie w twoich danych (np. |), I wstaw go między pola. Więc kolumna pomocnika będzie zawierać

=B2&"|"&C2&"|"&D2&"|"&…&"|"&X2&"|"&Y2&"|"&Z2&"|"&AA2&"|"&AB2&"|"&AC3&"|"&…&"|"&AX2

w wyniku czego dane mogą wyglądać następująco:

Andy | Nowy Jork | 1342 Wall Street | Bankier inwestycyjny | Elizabeth | 2 | kot | stopień naukowy | UCLA |…

i zmiana zostanie zgłoszona, ponieważ the|react ≠  there|act. Prawdopodobnie powinieneś się tym przejmować, ale w oparciu o to, jakie faktycznie są twoje kolumny, możesz mieć powód, aby mieć pewność, że nigdy nie będzie to problemem.

Gdy zaczniesz działać, możesz ukryć kolumny pomocnicze.

Scott
źródło
1

Przejdź do zakładki Widok i kliknij Nowe okno. Przejdź do nowego okna i kliknij obok siebie. Możesz zsynchronizować przewijanie, klikając Synchroniczne przewijanie. Sprawdź załączony obraz: Arkusze Excel obok siebie

Przewijanie synchroniczne zapewnia przewijanie różnych arkuszy jednocześnie. Przełączanie przycisku umożliwia przeglądanie obu razem i przewijanie tylko jednego arkusza roboczego.

Cetza Nido
źródło
Mam więcej niż 1 000 wierszy w każdym arkuszu kalkulacyjnym ... 50 kolumn .. niektóre dane są bardzo trudne do porównania, przeglądając (dane bankowe, numer telefonu, daty ...) Jest to zbyt długie, aby postępować w ten sposób i istnieje ryzyko błędu / pominięcia Będę musiał to robić co miesiąc. Nie ma szybszego rozwiązania? :(
CILUEA
W tym samym widoku możesz zastosować filtry do kolumn. Dodaj formuły wyszukiwania w jednym z arkuszy.
Cetza Nido
Nie chcę stosować filtrów do kolumn ... Mam dwa arkusze kalkulacyjne (jedna linia = jeden pracownik) i chcę wyróżnić zmienione dane (adres, telefon ..) dla każdego pracownika, między starym arkuszem kalkulacyjnym (ostatni miesiąc) i nowy arkusz kalkulacyjny (w tym miesiącu) Nie mogę tego robić ręcznie każdego miesiąca .. To więcej niż 1000 wierszy w każdym arkuszu kalkulacyjnym i 50 kolumnach
CILUEA
Możesz użyć wyszukiwania OR indeks + formuła dopasowania wraz z formatowaniem warunkowym. Czy można udostępnić arkusz z przykładowymi danymi?
Cetza Nido,
Zredagowałem swój post, podając przykład i więcej wyjaśnień .. Dzięki!
CILUEA
1

Ok, więc możesz zrobić jedną z dwóch rzeczy.

1.- Rozwiązaniem OOTB jest przejście do „Dane” -> „Narzędzia danych” -> „Usuń (To jest bezpośrednie tłumaczenie z hiszpańskiego) Duplikaty”. W ten sposób musisz dołączyć obie tabele, a skończysz tylko na danych, które zostały zmienione i tylko na unikatach. Aby odfiltrować użycie CountIfunikalnych identyfikatorów, usuń zaznaczenie tego, co zostało policzone jako 1. Zamów według niepowtarzalnego identyfikatora, a zobaczysz, co zostało zmienione.

2.-Użyj tej formuły

IF(Index("rangetoreturn";Match("CellofUniqueID";"Rangeofuniqueidtolookinto";0))<>"OneOftheCellthatcontainsthesameasRangeToReturn";"Info Has Changed";"InfoHasNotChanged")

Ta formuła może być ułożona w prawo i w dół. Otrzymasz więc tabelę z warunkiem if, z taką samą ilością linii jak tabela „CellofUniqueID”. Pozycja „Info uległa zmianie”, powie ci, która komórka w drugiej tabeli zmieniła swoją zawartość. Więc użyj tej formuły w nowym arkuszu i stwórz nowy stół. Następnie spójrz na filtry i odznacz „InfoHasNotChanged” (lub dowolne słowo, którego chcesz użyć).

„rangetoreturn” i „Rangeofuniqueidtolookinto” pochodzą z jednej tabeli (lub arkusza), a „CellofUniqueID” z drugiej tabeli.

Twoje zdrowie

dmb
źródło
Dzięki ! Pierwsze rozwiązanie może być najłatwiejsze, ale nie działa: (a może nie rozumiałem dobrze?) Opcja „usuń duplikat” spowoduje usunięcie niektórych wierszy i chcę zachować wszystkie wiersze w obu arkuszach. Ponadto, tylko mają jedną kolumnę w arkuszu z unikatowymi danymi, wszystkie pozostałe kolumny mają wiele wierszy z tymi samymi danymi w środku (na przykład dwie osoby z tą samą datą urodzenia lub w tym samym wieku ..)
CILUEA
Opcja 2: czym jest powrót do poprzedniej linii / zakres uniqueidolookinto / OneOftheCellthat, który obejmuje te same zakresy do zwrotu?
CILUEA
@ CILUEA dla opcji 2, „zakres zwrotu” to zakres informacji, które chcesz przywrócić. „Rangeofuniqueidtolookinto” to dosłownie zakres unikalnych identyfikatorów, w których będziesz szukać swojego unikalnego identyfikatora. „OneOftheCellthatcontheshesameasRangeToReturn” jest to informacja, którą porównasz z tą, którą sprowadzasz, więc jeśli będzie inna, to ci powie. Niestety nie ma wygodnej odpowiedzi, chyba że znasz trochę VBA, co nie wydaje się tak.
dmb
@ CILUEA dla opcji 1, musisz utworzyć nową tabelę z obu tabel. Następnie usuń duplikaty. Następnie możesz także używać CountIfi filtrować według 2 wystąpień, jeśli masz 1 wystąpienie, oznacza to, że informacje się nie zmieniły. Na koniec zamów według unikalnego identyfikatora. Wrzuć także flagę do nowej kolumny kolumn, abyś wiedział, z której tabeli pochodzą twoje informacje. Teraz możesz wyraźnie zobaczyć, jakie są różnice
dmb
@ Scott „Out of the Box” ... Popełniłem błąd, powinien to być OOTB, przepraszam, angielski nie jest moim pierwszym językiem.
dmb