Spis treści
Czy wiesz, że podczas łączenia 2 arkuszy Google możesz nie tylko aktualizować rekordy w jednej kolumnie, ale także wyciągać całe powiązane kolumny, a nawet niepasujące wiersze? Dziś pokażę Ci jak to się robi za pomocą funkcji VLOOKUP, INDEX/MATCH, QUERY oraz dodatku Merge Sheets.
Ostatnim razem, gdy rozmawiałem o łączeniu 2 arkuszy Google, podzieliłem się sposobami dopasowania & aktualizacji danych. Tym razem nadal będziemy aktualizować komórki, ale także wyciągniemy inne powiązane kolumny i niepasujące wiersze.
Oto moja tabela lookup, z której dzisiaj będę pobierał wszystkie potrzebne dane:
Tym razem jest większa: ma dwie dodatkowe kolumny z nazwami sprzedawców i ich ocenami. Zaktualizuję kolumnę Stock o to info w innej tabeli i też pociągnie sprzedawców. No i może jeszcze oceny :)
Jak zwykle do pracy wykorzystam kilka funkcji i specjalny dodatek.
Połącz arkusze Google & dodaj powiązane kolumny używając VLOOKUP
Pamiętasz Google Sheets VLOOKUP? Użyłem go w moim poprzednim artykule, aby dopasować dane i zaktualizować niektóre komórki.
Jeśli ta funkcja nadal Was odstrasza, to najwyższy czas się z nią zmierzyć i nauczyć się jej raz na zawsze, bo dziś również zamierzam z niej skorzystać :)
Wskazówka. Jeśli szukasz szybkiego rozwiązania, które pozwoli Ci zaoszczędzić czas, od razu przejdź do spotkania z Merge Sheets.
Zróbmy szybkie podsumowanie składni formuły:
=VLOOKUP(search_key, range, index, [is_sorted])- klucz wyszukiwania jest tym, czego szukasz.
- zakres jest tam, gdzie szukasz.
- indeks jest numerem kolumny, z której ma zostać zwrócona wartość.
- [is_sorted] jest całkowicie opcjonalny i wskazuje, czy kolumna klucza jest posortowana.
Wskazówka. Na naszym blogu jest cały tutorial poświęcony VLOOKUP w Google Sheets, zapraszam do obejrzenia.
Kiedy połączyłem dwa arkusze Google i po prostu zaktualizowałem dane w kolumnie Stock, użyłem tej formuły VLOOKUP:
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Arkusz1!$B$2:$D$10,2,FALSE),""))
IFERROR upewnił się, że nie ma błędów w komórkach bez dopasowań, a ARRAYFORMULA przetworzyła całą kolumnę naraz.
Więc jakie zmiany muszę wprowadzić, aby wyciągnąć sprzedawców jako nową kolumnę również z tabeli lookup?
Cóż, skoro to jest indeks który mówi Google Sheets VLOOKUP z jakiej kolumny ma pobrać dane, można śmiało powiedzieć, że to właśnie on wymaga poprawek.
Najprostszym sposobem jest skopiowanie formuły do sąsiedniej kolumny i zwiększenie jej indeks o jeden (zastąpić 2 z 3 ):
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Arkusz1!$B$2:$D$10,3,FALSE),""))
Będziesz jednak musiał wstawić tę samą formułę z innym indeksem tyle razy, ile dodatkowych kolumn chciałbyś uzyskać.
Na szczęście istnieje lepsza alternatywa, która polega na tworzeniu tablic. Tablice pozwalają połączyć wszystkie kolumny, które chcemy wyciągnąć w jednym indeksie.
Kiedy tworzysz tablicę w Google Sheets, wymieniasz wartości lub odwołania do komórek/zakresów w nawiasach, np. ={1, 2, 3} lub ={1; 2; 3}
Układ tych rekordów w arkuszu zależy od delimitera:
- Jeśli użyjesz średnika, liczby będą zajmować różne wiersze w ramach kolumny:
To ostatnie jest dokładnie tym, co musisz zrobić w argumencie indeksu Google Sheets VLOOKUP.
Ponieważ łączę arkusze Google, aktualizuję 2 kolumnę i wyciągam 3, muszę utworzyć tablicę z tymi kolumnami: {2, 3} :
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Arkusz1!$B$2:$D$10,{2,3},FALSE),""))
W ten sposób jedna formuła VLOOKUP Google Sheets dopasowuje nazwy, aktualizuje informacje o zapasach i dodaje powiązanych sprzedawców do pustej sąsiedniej kolumny.
Dopasowanie & łączenie arkuszy i dodawanie kolumn za pomocą INDEX MATCH
Następna w kolejności jest INDEX MATCH. Te dwie funkcje razem konkurują z VLOOKUP, ponieważ omijają jego ograniczenia przy łączeniu arkuszy Google.
Wskazówka Poznaj INDEX MATCH dla Google Sheets w tym tutorialu.
Zacznę od przypomnienia formuły, która po prostu łączy jedną kolumnę na podstawie dopasowań:
=IFERROR(INDEX(Sheet1!$C$1:$C$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),"")
W tej formule, Arkusz1!$C$1:$C$10 jest kolumną z wartościami, których potrzebujesz, gdy Arkusz1!$B$1:$B$10 spełnia tę samą wartość, co w B2 w aktualnej tabeli.
Mając na uwadze powyższe kwestie, należy Arkusz1!$C$1:$C$10 które musisz zmienić, aby nie tylko scalić tabele i zaktualizować komórki, ale także dodać kolumny.
W przeciwieństwie do VLOOKUP w Google Sheets, tutaj nie ma nic wymyślnego. Po prostu wpisujesz zakres z tymi wszystkimi wymaganymi kolumnami: tą do aktualizacji i innymi do dodania. W moim przypadku będzie to Arkusz1!$C$1:$D$10 :
=IFERROR(INDEX(Sheet1!$C$1:$D$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),"")
Albo mogę rozszerzyć zakres do E10 aby dodać 2 kolumny, a nie tylko jedną:
=IFERROR(INDEX(Sheet1!$C$1:$E$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),"")
Uwaga. Te dodatkowe rekordy zawsze trafiają do sąsiednich kolumn. Jeśli te kolumny będą miały inne wartości, formuła nie nadpisze ich, tylko da błąd #REF z odpowiednią podpowiedzią:
Po wyczyszczeniu tych komórek lub dodaniu nowych kolumn na lewo od nich, pojawią się wyniki formuły.
Połącz arkusze Google, zaktualizuj komórki & dodaj powiązane kolumny - wszystko za pomocą QUERY
QUERY to jedna z najpotężniejszych funkcji w arkuszach kalkulacyjnych Google. Nic więc dziwnego, że zamierzam jej dziś użyć do połączenia kilku arkuszy Google, aktualizacji komórek i jednoczesnego dodania dodatkowych kolumn.
Funkcja ta różni się od innych tym, że jeden z jej argumentów wykorzystuje język poleceń.
Wskazówka. jeśli zastanawiasz się, jak korzystać z funkcji QUERY w Google Sheets, odwiedź ten wpis na blogu.
Przypomnijmy sobie formułę, która w pierwszej kolejności aktualizuje komórki:
=IFERROR(QUERY(Arkusz1!$A$2:$C$10, "select C where&QUERY!$B2:$B$10&"),")
Tutaj QUERY patrzy na tabelę z wymaganymi danymi w Arkuszu1, dopasowuje komórki w kolumnie B do mojej aktualnej nowej tabeli i łączy te arkusze: pobiera dane z kolumny C dla każdego dopasowania. IFERROR utrzymuje wynik bez błędów.
Aby dodać dodatkowe kolumny dla tych meczów, musisz wprowadzić 2 małe zmiany do tej formuły:
- lista wszystkich niezbędnych kolumn dla wybierz polecenie:
...wybierz C,D,E...
- rozszerzyć zakres, aby wyglądać odpowiednio:
...QUERY(Sheet1!$A$2:$E$10,...
Oto pełna formuła:
=IFERROR(QUERY(Arkusz1!$A$2:$E$10, "select C,D,E where&Arkusz4!$B2:$B$10&"),")
Aktualizuje kolumnę zapasów i ściąga 2 dodatkowe kolumny z tabeli lookup do tej głównej tabeli.
Jak dodać niepasujące wiersze używając FILTR + VLOOKUP
Wyobraź sobie to: łączysz 2 arkusze Google, aktualizujesz stare informacje z nowymi i otrzymujesz nowe kolumny z dodatkowymi powiązanymi wartościami.
Co jeszcze mógłbyś zrobić, aby mieć pełny obraz zapisów pod ręką?
Być może dodanie niepasujących wierszy do końca tabeli? W ten sposób będziesz miał wszystkie wartości w jednym miejscu: nie tylko mecze z zaktualizowanymi powiązanymi informacjami, ale także niepasujące, aby się liczyły.
Byłem mile zaskoczony, że Google Sheets VLOOKUP wie, jak to zrobić. Kiedy jest używany razem z funkcją FILTER, łączy arkusze Google i dodaje również niepasujące wiersze.
Wskazówka Na koniec pokażę jeszcze jak jeden dodatek robi to samo z pojedynczym checkboxem.
Argumenty Google Sheets FILTER są dość jasne:
=FILTER(zakres, warunek1, [warunek2, ...])- zakres to dane, które chcesz filtrować.
- stan1 jest kolumną lub wierszem z kryterium filtrowania.
- kryteria2, kryteria3, itd. są całkowicie opcjonalne. Użyj ich, gdy musisz użyć kilku kryteriów.
Wskazówka. więcej o funkcji FILTER w Google Sheets dowiesz się w tym wpisie na blogu.
Jak więc te dwie funkcje dogadują się ze sobą i scalają arkusze Google? Otóż FILTER zwraca dane na podstawie kryteriów filtrowania utworzonych przez VLOOKUP.
Spójrz na ten wzór:
=FILTER(Sheet1!$A$2:$E$10,ISERROR(VLOOKUP(Sheet1!$B$2:$B$10,$B$2:$C$10,2,FALSE)=1))
Skanuje 2 tabele Google w poszukiwaniu dopasowań i przeciąga niepasujące wiersze z jednej tabeli do drugiej:
Pozwól, że wyjaśnię, jak to działa:
- FILTER przechodzi do arkusza lookup (tabela z wszystkimi danymi - przyp. tłum. Arkusz 1! $A$2:$E$10 ) i używa VLOOKUP, aby uzyskać prawidłowe wiersze.
- VLOOKUP pobiera nazwy elementów z kolumny B na tym arkuszu lookup i dopasowuje je do nazw z mojej bieżącej tabeli. Jeśli nie ma dopasowania, VLOOKUP mówi, że wystąpił błąd.
- ISERROR zaznacza każdy taki błąd cyfrą 1, mówiąc FILTROWI, aby przeniósł ten wiersz do innego arkusza.
W rezultacie formuła wyciąga 3 dodatkowe wiersze dla tych jagód, które nie występują w mojej głównej tabeli.
To nie jest takie skomplikowane, gdy się trochę pobawisz tą metodą :)
Ale jeśli nie chcesz poświęcać na to czasu, jest lepszy i szybszy sposób - bez jednej funkcji i formuły.
Bez formuły sposób na dopasowanie & scalanie danych - dodatek Merge Sheets
Dodatek Merge Sheets obejmuje wszystkie 3 możliwości podczas łączenia arkuszy Google:
- aktualizuje powiązane komórki na podstawie dopasowań
- dodaje nowe kolumny dla tych meczów
- wstawia wiersze z niepasującymi rekordami
Aby uniknąć zamieszania, proces podzielony jest na 5 prostych kroków :
- Pierwsze dwa są tam, gdzie ty wybierz swoje stoły nawet jeśli są w różnych arkuszach kalkulacyjnych.
- Na stronie 3d masz wybrać kluczową(e) kolumnę(y) które powinny być sprawdzone pod kątem dopasowania.
- Na stronie 4. krok pozwala ci ustawić kolumny do aktualizacji z nowymi rekordami lub dodać z jednego arkusza na drugi:
Trwało to kilka sekund, aż mogłem zobaczyć rezultat:
Zainstaluj Merge Sheets ze sklepu Google Sheets, a zobaczysz, że równie szybko przetwarza większe tabele. Dzięki Merge Sheets będziesz miał więcej czasu na ważne sprawy.
Zostawię też ten 3-minutowy filmik demo, który pomoże Wam wyrobić sobie zdanie :)
Arkusz kalkulacyjny z przykładami formuł
Scalanie arkuszy Google, dodawanie powiązanych kolumn & niepasujących wierszy - przykłady formuł (zrób kopię tego arkusza)