- QUERY umożliwia filtrowanie, sortowanie i podsumowywanie danych bez modyfikowania oryginalnego zakresu.
- Nagłówki i typy danych mają wpływ na wynik, szczególnie gdy brakuje wartości.
- W tablicach łączonych używane są identyfikatory pozycyjne, które należy sprawdzić w przypadku zmiany struktury.
- Zaleca się zdiagnozowanie błędów przed ich ukryciem, aby nie pomylić nieprawidłowej formuły z zapytaniem, dla którego nie ma wyników.
La Funkcja QUERY w Arkuszach Google Umożliwia wybieranie kolumn, filtrowanie rekordów, sortowanie wyników i obliczanie podsumowań za pomocą formuły. Jest to przydatne, gdy trzeba wygenerować raport oparty na danych z innej tabeli bez modyfikowania oryginalnej zawartości.
Twoje zapytanie wykorzystuje język Google Visualization o składni podobnej do SQL. Aby zacząć, nie musisz znać całego tego języka: możesz utworzyć proste zapytanie i w razie potrzeby dodać warunki lub grupowania.
Składnia zapytania QUERY w Arkuszach Google i pierwszy przykład

Struktura funkcji ma trzy argumenty:
=QUERY(datos; consulta; encabezados)
- dane: zakres lub macierz, którą chcesz zapytać.
- konsultacja: instrukcje w cudzysłowie lub odwołanie do komórki, która je zawiera.
- nagłówki: Liczba początkowych wierszy w zakresie, które są nagłówkami. Użyj 1, jeśli istnieje wiersz nagłówka, i 0, jeśli go nie ma. Jeśli pominiesz tę wartość lub wpiszesz -1, Arkusze spróbują odgadnąć.
W poniższych przykładach użyjemy tabeli o następującej strukturze:
| A: Data | B: Klient | C: Stan | D: Kwota | E: Kanał |
|---|---|---|---|---|
| 01/10/2026 | Anna | Wypełniony | 100 | Sieć |
| 02/10/2026 | Luis | Kolczyk | 80 | Sklep |
| 03/10/2026 | Anna | Wypełniony | 50 | Sklep |
| 04/10/2026 | Kuna | Wypełniony | 200 | Sieć |
| 05/10/2026 | Luis | Odwołany | 40 | Sieć |
Nagłówki znajdują się w wierszu 1, a pięć rekordów zajmuje wiersze od 2 do 6. Aby zwrócić całą tabelę, wpisz formułę w pustym obszarze, na przykład G1:
=QUERY(A1:E6;"select *";1)
W przykładach wykorzystano średnik między argumentamiJeśli w pliku są używane przecinki, dostosuj te separatory. Przecinki w tekście zapytania, np. select B, DNależy je zachować.
Wybierz kolumny, filtruj i sortuj wyniki

Klauzula wybierać Pozwala to na wybór kolumn. Aby wyświetlić tylko klienta i kwotę:
=QUERY(A1:E6;"select B, D";1)
Z Gdzie Możesz ograniczyć rekordy do zamówień zrealizowanych:
=QUERY(A1:E6;"select B, D where C = 'Completado'";1)
Przykład zwraca obie operacje Any i Marty. Dodawanie zamów według Można je sortować według kwoty malejącej:
=QUERY(A1:E6;"select B, D where C = 'Completado' order by D desc";1)
Można również łączyć warunki:
=QUERY(A1:E6;"select B, D where C = 'Completado' and D >= 100 order by D desc";1)
Ostatnie zapytanie zwraca Martę z wartością 200 i Anę z wartością 100. Liczby są porównywane bez cudzysłowów; wartości tekstowe są zapisywane w pojedynczych cudzysłowach wewnątrz zapytania.
Grupuj kwoty za pomocą GROUP BY i zmień nagłówki
Aby uzyskać całkowitą kwotę na klienta, połącz grupuj według z suma():
=QUERY(A1:E6;"select B, sum(D) group by B label sum(D) 'Importe total'";1)
Wynik pokazuje 150 dla Any, 120 dla Luisa i 200 dla Marty. W tym przypadku wszystkie stany są uwzględnione, ponieważ nie dodaliśmy filtra.
Jeśli chcesz dodać tylko zamówienia zrealizowane:
=QUERY(A1:E6;"select B, sum(D) where C = 'Completado' group by B order by sum(D) desc label sum(D) 'Ventas completadas'";1)
Możesz użyć innych agregacji, takich jak: avg(), count(), min() y max()Podczas grupowania wybrane kolumny, które nie są agregowane, muszą być częścią group by.
Pamiętaj, że count(D) zlicza wartości różne od null w DNie sumuje kwot. Wybierz odpowiednią kolumnę, jeśli chcesz policzyć transakcje.
Użyj funkcji PIVOT, LIMIT i OFFSET
Klauzula sworzeń Przekształca wartości pola w kolumny. Na przykład, możesz rozdzielić zrealizowane transakcje każdego klienta między witryną internetową a sklepem:
=QUERY(A1:E6;"select B, sum(D) where C = 'Completado' group by B pivot E";1)
Aby uzyskać tylko trzy najwyższe kwoty, użyj limit po zamówieniu:
=QUERY(A1:E6;"select B, D order by D desc limit 3";1)
Z zrównoważyć Możesz pominąć wiersze w wyniku. To zapytanie pomija pierwsze dwa rekordy w sortowaniu i zwraca kolejne dwa:
=QUERY(A1:E6;"select B, D order by D desc limit 2 offset 2";1)
Klauzule muszą zachowywać następującą kolejność: select, where, group by, pivot, order by, limit, offset, label y format.
Filtruj daty i pracuj z tekstem
Jeśli kolumna A zawiera daty rozpoznane przez Arkusze, możesz wybrać transakcje z października w następujący sposób:
=QUERY(A1:E6;"select * where A >= date '2026-10-01' and A < date '2026-11-01'";1)
Pole daty w zapytaniu używa formatu rok-miesiąc-dzieńNawet jeśli komórki wyświetlają dzień/miesiąc/rok, jeśli źródło zawiera tekst, który wygląda jak data, musisz go najpierw poprawić.
Aby pracować z częściami dat, istnieją: year(), month() y day()Proszę pamiętać, że month() zaczyna się od 0 w styczniu i kończy się na 11 w grudniuPrzy grupowaniu kilku lat należy także brać pod uwagę rok, aby uniknąć pomieszania równorzędnych miesięcy.
W filtrach tekstowych możesz używać contains, starts with, ends with o matchesPorównania uwzględniają wielkość liter. Tekst można znormalizować za pomocą lower() o upper().
Łączenie danych z wielu arkuszy za pomocą Col1 i Col2

Aby ułożyć rekordy z dwóch kart tego samego pliku, można utworzyć tablicę za pomocą nawiasów klamrowych. Załóżmy, że obie mają te same pięć kolumn i jeden wiersz nagłówków:
=QUERY({Ventas1!A1:E100;Ventas2!A2:E100};"select Col2, Col4 where Col2 is not null";1)
Pierwsze odniesienie zawiera nagłówki; drugie zaczyna się w wierszu 2, aby uniknąć powtórzeń. Zakresy muszą mieć taką samą liczbę kolumn i kompatybilną strukturę.
W tej macierzy, Kolumna 1 reprezentuje pierwszą kolumnę, a Kolumna 2 drugąSą to pozycje w zapytaniu, a nie nazwy pól. Jeśli zmienisz kolejność zawartości kolumn, sprawdź zapytanie, aby upewnić się, że nadal wybiera poprawne informacje.
Średnik w nawiasach klamrowych układa zakresy pionowo. Ta operacja nie łączy rekordów za pomocą identyfikatora i nie jest równoważna z wykonaniem połączenia JOIN między tabelami.
Typowe błędy w zapytaniach i jak je znaleźć
- Brakujące wartości: Kolumna zawierająca typy mieszane może utracić wartości typu mniejszościowego, które QUERY interpretuje jako null.
- Błąd podczas analizowania zapytania: Sprawdź cudzysłowy, identyfikatory, funkcje i kolejność klauzul.
- Nie pojawiły się żadne nowe rekordy: Sprawdź, czy znajdują się one w zakresie zapytania. Odwołanie do wiersza 100 nie obejmuje wiersza 101.
- Macierzy nie można rozwinąć: Pozostaw komórki, w których wynik powinien być widoczny, wolne i sprawdź, czy są wśród nich jakieś połączone komórki.
- Wiersz danych jest interpretowany jako tytuł: sprawdź argument nagłówka.
Nie zawijaj formuły w JEŻELI.BŁĄD lub JEŻELI.BŁĄD Szukając przyczyny błędu, możesz ukrywać błąd składniowy, mylnie interpretując go jako brak dopasowań.
Gdy zapytanie działa, jeśli chcesz konkretnie zająć się błędem #N/Amożesz użyć SI.ND:
=SI.ND(QUERY(A1:E6;"select B, D where C = 'Devuelto'";1);"Sin coincidencias")
Jeżeli plik zachowuje nazwy funkcji w języku angielskim, użyj IFNAFunkcja ta obsługuje tego typu błędy i sama w sobie nie pokazuje, co było ich przyczyną.
Aby pracować bezpiecznie, zacznij od prostego wyboru i dodaj każdy warunek osobno. Zapytanie przelicza wynik, gdy dane, od których zależy, ulegną zmianie, ale Nie modyfikuje początku ani nie rozszerza automatycznie zakresu zamkniętego..
Jestem entuzjastą technologii, który swoje „geekowskie” zainteresowania przekształcił w zawód. Spędziłem ponad 10 lat mojego życia, korzystając z najnowocześniejszych technologii i majsterkując przy wszelkiego rodzaju programach z czystej ciekawości. Teraz specjalizuję się w technologii komputerowej i grach wideo. Dzieje się tak dlatego, że od ponad 5 lat piszę dla różnych serwisów poświęconych technologii i grom wideo, tworząc artykuły, których celem jest dostarczenie potrzebnych informacji w języku zrozumiałym dla każdego.
Jeśli masz jakieś pytania, moja wiedza obejmuje wszystko, co jest związane z systemem operacyjnym Windows, a także Androidem dla telefonów komórkowych. Moje zaangażowanie jest wobec Ciebie. Zawsze jestem gotowy poświęcić kilka minut i pomóc Ci rozwiązać wszelkie pytania, jakie możesz mieć w tym internetowym świecie.