Spis treści
Jeśli śledzicie tego bloga od jakiegoś czasu, być może pamiętacie funkcję QUERY dla Google Sheets. Wspominałem o niej jako o możliwym rozwiązaniu w kilku przypadkach. To jednak zdecydowanie za mało, by odkryć jej pełny potencjał. Dziś najwyższy czas, by poznać tego superbohatera arkuszy kalkulacyjnych należycie. I zgadnijcie co - pojawi się tam również jedno równie godne uwagi narzędzie :)
Czy wiesz, że funkcja QUERY w Google Sheets jest uważana za najpotężniejszą w arkuszach kalkulacyjnych? Jej specyficzna składnia sprzyja dziesiątkom różnych operacji. Spróbujmy rozłożyć jej części na czynniki pierwsze, aby nauczyć się ich raz na zawsze, prawda?
Składnia funkcji QUERY w arkuszach Google
Na pierwszy rzut oka Google Sheets QUERY to po prostu kolejna funkcja z 1 opcjonalnym i 2 wymaganymi argumentami:
=QUERY(dane, zapytanie, [nagłówki])- dane to zakres do przetworzenia. Wymagane. Wszystko jest tu krystalicznie czyste.
Uwaga. Tylko jedno małe przypomnienie tutaj ustanowione przez Google: każda kolumna powinna zawierać jeden typ danych: tekstowy, lub numeryczny, lub boolean. Jeśli są różne typy, QUERY będzie działać z tym, który występuje najczęściej. Inne typy będą uważane za puste komórki. Dziwne, ale pamiętaj o tym.
- zapytanie to sposób na przetwarzanie dane . Wymagane Tu zaczyna się cała zabawa, funkcja Google Sheets QUERY używa specjalnego języka dla tego argumentu: Język zapytań Google Visualization API Jest on napisany w sposób podobny do SQL. Zasadniczo jest to zestaw specjalnych klauzul (poleceń) używanych do mówienia funkcji, co ma robić: select, group by, limit, itp.
Uwaga. Cały argument musi być ujęty w podwójne cudzysłowy. Wartości z kolei powinny być ujęte w cudzysłowy.
- nagłówki jest opcjonalny w przypadku, gdy musisz wskazać liczbę wierszy nagłówka w swoich danych. Pomiń ten argument (tak jak robię to poniżej), a Google Sheets QUERY założy go na podstawie zawartości twojej tabeli.
Teraz zagłębmy się w klauzule i co one robią.
Klauzule używane w formułach QUERY w Google Sheets
Język zapytań składa się z 10 klauzul. Na pierwszy rzut oka mogą one przerażać, zwłaszcza jeśli nie jesteś obeznany z SQL. Ale obiecuję, że gdy już je poznasz, dostaniesz do dyspozycji potężną broń w postaci arkusza kalkulacyjnego.
Zamierzam objąć każdą klauzulę i podać przykłady wzorów, korzystając z tej listy wymyślonych studentów i ich papierowych przedmiotów:
Yep, jestem jednym z tych dziwaków, którzy uważają, że Pluton powinien być planetą :)
Wskazówka. W ramach jednej funkcji QUERY arkusza Google można użyć kilku klauzul. Jeśli zagnieżdżasz je wszystkie, pamiętaj o zachowaniu kolejności ich występowania w tym artykule.
Wybierz (wszystkie lub określone kolumny)
Już pierwsza klauzula -. wybierz - służy do informowania, jakie kolumny należy zwrócić za pomocą Google Sheets QUERY z innego arkusza lub tabeli.
Przykład 1. Wybierz wszystkie kolumny
Aby pobrać każdą kolumnę, użyj wybierz z gwiazdką -. wybierz *
=QUERY(Papiery!A1:G11, "wybierz *")
Wskazówka. Jeśli pominiesz wybierz parametr, Google Sheets QUERY domyślnie zwróci wszystkie kolumny:
=QUERY(Papiery!A1:G11)
Przykład 2. Wybierz określone kolumny
Aby wyciągnąć tylko niektóre kolumny, wymień je po wybierz klauzula:
=QUERY(Papiery!A1:G11, "wybierz A,B,C")
Wskazówka Interesujące nas kolumny zostaną skopiowane w takiej samej kolejności, w jakiej wymieniasz je w formule:
=QUERY(Papiery!A1:G11, "wybierz C,B,A")
Google Sheets QUERY - klauzula "gdzie
Google Sheets PYTANIE gdzie służy do ustawienia warunków w kierunku danych, które chcesz uzyskać. Innymi słowy, działa jako filtr.
Jeśli użyjesz tej klauzuli, funkcja QUERY dla Arkuszy Google będzie przeszukiwać kolumny pod kątem wartości spełniających Twoje warunki i pobierać wszystkie dopasowania z powrotem do Ciebie.
Podpowiedź. Gdzie może funkcjonować bez wybierz klauzula.
Jak zwykle, aby określić warunki, istnieją zestawy specjalnych operatorzy dla ciebie:
- proste operatory porównania ( dla wartości numerycznych ): =, ,>,>=, <, <=.
- złożone operatory porównania ( dla ciągów ): zawiera, zaczyna się od, kończy się na, pasuje, != (nie pasuje / nie jest równy), jak .
- operatory logiczne do łączyć kilka warunków : i, lub, nie .
- operatorzy dla puste / nie puste : jest zerowa, nie jest zerowa .
Wskazówka. jeśli jesteś zdenerwowany lub martwisz się, że musisz ponownie poradzić sobie z tak ogromną liczbą operatorów, czujemy cię. Nasze Wielokrotne dopasowanie Vlookup znajdzie wszystkie dopasowania i w razie potrzeby zbuduje dla ciebie formuły QUERY w Google Sheets.
Zobaczmy, jak te operatory zachowują się w formułach.
Przykład 1. Gdzie z numerami
Dodam gdzie do mojego Google Sheets QUERY z góry, aby uzyskać informacje o tych planetach, które mają więcej niż 10 księżyców:
=QUERY(Papers!A1:G11, "select A,B,C,F where F>=10")
Wskazówka. wspomniałem również o kolumnie F, aby pobrać tylko po to, aby upewnić się, że kryterium jest spełnione. Ale jest to całkowicie opcjonalne, nie musisz włączać kolumn z warunkami do wyniku:
=QUERY(Papers!A1:G11, "select A,B,C where F>=10")
Przykład 2. Gdzie z ciągami tekstowymi
- Chcę zobaczyć wszystkie wiersze, w których ocena jest albo F lub F+ . . . użyję zawiera operator do tego:
=QUERY(Papers!A1:G11, "select A,B,C,G where G contains 'F'")
Uwaga. Nie zapomnij otoczyć swojego tekstu cudzysłowem.
- Aby uzyskać wszystkie wiersze z F tylko, wystarczy zastąpić zawiera ze znakiem równości (=):
=QUERY(Papers!A1:G11, "select A,B,C,G where G="F"")
- Aby sprawdzić prace, które jeszcze nie zostały dostarczone (gdzie brakuje oceny), należy sprawdzić kolumnę G dla pustych miejsc:
=QUERY(Papers!A1:G11, "select A,B,C,G where G is null")
Przykład 3. Gdzie z datami
Zgadnijcie co: w Google Sheets QUERY udało się nawet oswoić daty!
Ponieważ arkusze kalkulacyjne przechowują daty jako numery seryjne, zwykle trzeba uciekać się do pomocy funkcji specjalnych, takich jak DATE lub DATEVALUE, YEAR, MONTH, TIME itp.
Ale QUERY znalazł sposób na daty. Aby je poprawnie wprowadzić, wystarczy wpisać słowo data a następnie dodać samą datę sformatowaną jako yyyy-mm-dd: data "2020-01-01
Oto moja formuła, aby uzyskać wszystkie wiersze z datą wystąpienia przed 1 stycznia 2020 r:
=QUERY(Papers!A1:G11, "select A,B,C where B
Przykład 4. Połączenie kilku warunków
Aby użyć pewnego okresu czasu jako kryterium, będziesz musiał połączyć dwa warunki.
Spróbujmy wyszukać te papiery, które zostały dostarczone jesienią 2019 roku.Pierwszym kryterium powinna być data w dniu lub po 1 września 2019 r. , drugie -. w dniu lub przed dniem 30 listopada 2019 r. :
=QUERY(Papers!A1:G11, "select A,B,C where B>=data '2019-09-01' and B<=data '2019-11-30'")
Albo mogę wybrać papiery na podstawie tych parametrów:
- przed 31 grudnia 2019 roku ( B
) - mają jako ocenę A lub A+ ( G zawiera "A )
- lub B/B+ ( G zawiera "B )
=QUERY(Papers!A1:G11, "select A,B,C,G where B
Wskazówka. Jeśli Twoja głowa już ma eksplodować, nie poddawaj się jeszcze. Istnieje narzędzie, które doskonale potrafi zbudować za Ciebie wszystkie te formuły, bez względu na ilość kryteriów. Skocz na sam koniec artykułu, aby się z nim zapoznać.
Arkusze Google - grupowanie według
Google Sheets PYTANIE grupa przez Polecenie służy do łączenia wierszy, jednak w celu ich podsumowania należy użyć pewnych funkcji agregujących.
Uwaga. Grupa według musi zawsze przestrzegać wybierz klauzula.
Niestety, w mojej tabeli nie ma nic do grupowania, ponieważ nie ma wartości powtarzających się. Pozwól mi więc nieco dostosować.
Załóżmy, że wszystkie prace mają być przygotowane tylko przez 3 studentów. Mogę znaleźć najwyższą ocenę, jaką otrzymał każdy student. Ale ponieważ są to listy, to funkcję MIN powinienem zastosować do kolumny G:
=QUERY(Papers!A1:G11, "select A,min(G) group by A")
Uwaga. Jeśli nie używasz funkcji agregacji z żadną kolumną w wybierz klauzula (kolumna A w moim przykładzie), musisz je wszystkie zduplikować w grupa przez klauzula.
Google Sheets PYTANIE - Pivot
Google Sheets QUERY czop klauzula działa w drugą stronę, jeśli mogę tak powiedzieć. transponuje dane z jednej kolumny do wiersza z nowymi kolumnami, odpowiednio grupując inne wartości.
Dla tych z was, którzy mają do czynienia z datami, może to być prawdziwe odkrycie. Będziesz mógł szybko rzucić okiem na wszystkie odrębne lata z tej kolumny źródłowej.
Uwaga. Gdy chodzi o czop , każda kolumna użyta w wybierz klauzula powinna być pokryta funkcją agregującą. W przeciwnym razie powinna być wymieniona w grupa przez polecenie po twoim czop .
Pamiętaj, że moja tabela wymienia teraz tylko 3 studentów. Sprawię, że funkcja powie mi, ile raportów wykonał każdy student:
=QUERY(Papers!A1:G11, "select count(G) pivot A")
Arkusze Google PYTANIE - Zamówienie według
Ten jest dość łatwy :) Służy do sortowania wyniku według wartości w określonych kolumnach.
Wskazówka. Wszystkie poprzednie klauzule są opcjonalne, gdy używamy zamówienie przez . I use wybierz aby zwrócić mniejszą liczbę kolumn w celach demonstracyjnych.
Wróćmy do mojej oryginalnej tabeli i posortujmy raporty według daty wystąpienia.
Ta następna formuła Google Sheets QUERY dostanie mi kolumny A, B i C, ale jednocześnie posortuje je według daty w kolumnie B:
=QUERY(Papers!A1:G11, "select A,B,C order by B")
Limit
Co jeśli powiedziałbym ci, że nie musisz przynosić każdego wiersza do wyniku? Co jeśli powiedziałbym ci, że Google Sheets QUERY może wyciągnąć tylko pewną ilość pierwszych meczów, które znajdzie?
Cóż, limit Klauzula ma za zadanie pomóc w tym, że ogranicza liczbę zwracanych wierszy o podaną liczbę.
Wskazówka. Możesz użyć limit bez innych wcześniejszych klauzul.
Formuła ta pokaże pierwsze 5 wierszy, w których kolumna z ocenami zawiera ocenę (nie jest pusta):
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 5")
Przesunięcie
Ta klauzula jest jakby przeciwstawna do poprzedniej, podczas gdy. limit otrzymuje liczbę wierszy określoną przez użytkownika, przesunięcie pomija je, odzyskując resztę.
Podpowiedź. Przesunięcie nie wymaga również żadnych innych klauzul.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null offset 5")
Jeśli spróbujesz użyć obu limit oraz przesunięcie , nastąpi to co następuje:
- Przesunięcie pominie wiersze na początku.
- Limit zwróci liczbę następujących wierszy.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit offset 3")
Z 11 wierszy danych (pierwszy jest nagłówkiem i funkcja QUERY w Google Sheets robi niezłą robotę rozumiejąc to), offset pomija pierwsze 3 wiersze. Limit zwraca 3 następne wiersze (zaczynając od 4):
Google Sheets QUERY - etykieta
Google Sheets PYTANIE etykieta polecenie pozwala na zmianę nazw nagłówków kolumn.
Wskazówka. Pozostałe klauzule są opcjonalne dla etykieta również.
Połóż etykieta najpierw, a następnie identyfikator kolumny i nową nazwę. Jeśli zmieniasz nazwę kilku kolumn, oddziel każdą nową parę kolumna-etykieta przecinkiem:
=QUERY(Papiery!A1:G11, "select A,B,C label A 'Imię', B 'Data'")
Format
Na stronie format klauzula umożliwia zmianę formatu wszystkich wartości w kolumnie. Do tego potrzebny jest wzorzec stojący za pożądanym formatem.
Wskazówka. klauzula formatu może również grać solo w QUERY Google Sheets.
=QUERY(Papiery!A1:G11, "select A,B,C limit 3 format B 'mm-dd, rrrr, ddd'")
Wskazówka. Wspomniałem o niektórych formatach dat dla Google Sheets QUERY w tym poście na blogu. Inne formaty mogą być pobierane bezpośrednio z arkuszy kalkulacyjnych: Format> Liczba> Więcej formatów> Niestandardowy format liczby .
Opcje
Ten służy do ustawienia kilku dodatkowych ustawień dla danych wynikowych.
Przykładowo, takie polecenie jak żadne_wartości zwróci tylko sformatowane komórki.
Najszybszy sposób budowania formuł QUERY - Wielokrotne dopasowanie Vlookup
Niezależnie od tego, jak potężna jest funkcja QUERY w Google Sheets, jej opanowanie może wymagać nauki. Jedną rzeczą jest zilustrowanie każdej klauzuli osobno na małej tabeli, a zupełnie inną próba zbudowania wszystkiego poprawnie za pomocą kilku klauzul i znacznie większej tabeli.
Dlatego postanowiliśmy ubrać Google Sheets QUERY w przyjazny interfejs i uczynić z niego dodatek.
Dlaczego Wielokrotne dopasowanie VLOOKUP jest lepsze niż formuły?
Cóż, z dodatkiem jest absolutnie nie ma potrzeby :
- dowiedzieć się cokolwiek o tych klauzule Naprawdę łatwo jest stworzyć wiele złożonych warunków w dodatku: tyle, ile potrzebujesz, pomimo ich kolejności, aby pobrać tyle meczów, ile potrzebujesz.
Uwaga. W chwili obecnej do narzędzia zostały włączone następujące klauzule: select, where, limit, oraz przesunięcie Jeśli Twoje zadanie wymaga również innych klauzul, skomentuj je poniżej - być może pomożesz nam się poprawić ;)
- umieć wprowadzać operatorów : wystarczy wybrać ten z listy rozwijanej.
- zastanawiać się nad prawidłowy sposób wprowadzania daty i godziny Dodatek pozwala na wprowadzenie ich w taki sam sposób, jak dotychczas, w oparciu o locale arkusza kalkulacyjnego.
Wskazówka. W narzędziu zawsze dostępna jest podpowiedź z przykładami różnych typów danych.
Jako bonus , będziesz mógł:
- podgląd oba wynik i wzór
- zrobić szybkie regulacje do twoich kryteriów
- wybrać miejsce na wynik
- wstawić wynik jako zarówno formuła QUERY lub jako wartości
Nie żartuję, zobaczcie sami - choć ten GIF był spedalony, to dopracowanie wszystkich kryteriów i uzyskanie efektu zajęło mi mniej niż minutę:
Jeśli jesteście wystarczająco ciekawi, oto szczegółowy filmik pokazujący, jak działa dodatek:
Mam nadzieję, że dacie temu dodatkowi szansę i pobierzecie go z Google Workspace Marketplace. Nie wstydźcie się i podzielcie się swoimi uwagami, zwłaszcza jeśli jest w nim coś, co Wam się nie podoba.
Zapraszamy również do zapoznania się z jego stroną z poradnikami lub stroną główną.