- QUERY関数を使用すると、元の範囲を変更することなく、データをフィルタリング、ソート、および集計できます。
- ヘッダーとデータ型は結果に影響を与え、特に値が欠落している場合はその影響が顕著になります。
- 結合配列は位置識別子を使用するため、構造が変更された場合はそれらを見直す必要があります。
- エラーを隠す前に診断しておくことをお勧めします。そうすることで、誤った数式を、一致するクエリがないクエリと混同することを防ぐことができます。
La GoogleスプレッドシートのQUERY関数 permite seleccionar columnas, filtrar registros, ordenar resultados y calcular resúmenes mediante una fórmula. Resulta útil cuando necesitas generar un informe que dependa de los datos de otra tabla sin modificar el contenido original.
Su consulta utiliza el lenguaje de Google Visualization, con una sintaxis parecida a SQL. Para empezar no necesitas conocer todo ese lenguaje: puedes construir una consulta sencilla y añadir condiciones o agrupaciones a medida que las necesites.
GoogleスプレッドシートのQUERY構文と最初の例

関数構造には3つの引数があります。
=QUERY(datos; consulta; encabezados)
- データ: クエリを実行する対象の範囲または行列。
- 相談: 引用符で囲まれた指示、またはそれらを含むセルへの参照。
- 見出し: 指定範囲の最初の行のうち、見出し行の数を指定します。見出し行がある場合は 1、ない場合は 0 を入力してください。省略した場合、または -1 を入力した場合は、Sheets が推測します。
以下の例では、このような構造のテーブルを使用します。
| A: 日付 | B: クライアント | C: 状態 | D:金額 | E: チャンネル |
|---|---|---|---|---|
| 2026年10月01日 | アン | 満杯 | 100 | ウェブ |
| 2026年10月02日 | ルイス | イヤリング | 80 | 店 |
| 2026年10月03日 | アン | 満杯 | 50 | 店 |
| 2026年10月04日 | マーテン | 満杯 | 200 | ウェブ |
| 2026年10月05日 | ルイス | キャンセル | 40 | ウェブ |
ヘッダーは1行目にあり、5つのレコードは2行目から6行目にあります。テーブル全体を返すには、例えばG1などの空欄に数式を入力します。
=QUERY(A1:E6;"select *";1)
例では 引数間のセミコロンファイルでカンマを使用している場合は、それらの区切り文字を調整してください。クエリ テキスト内のカンマは、 select B, Dそれらは保存されなければならない。
列を選択し、結果をフィルタリングして並べ替えます。

その条項 選択 これにより、表示する列を選択できます。顧客と金額のみを表示するには、次のようにします。
=QUERY(A1:E6;"select B, D";1)
と どこ 完了した注文のみにレコードを絞り込むことができます。
=QUERY(A1:E6;"select B, D where C = 'Completado'";1)
この例では、アナの操作とマルタの操作の両方が返されます。 並べ替え 数量の多い順に並べ替えることができます。
=QUERY(A1:E6;"select B, D where C = 'Completado' order by D desc";1)
条件を組み合わせることもできます。
=QUERY(A1:E6;"select B, D where C = 'Completado' and D >= 100 order by D desc";1)
この最後のクエリでは、Marta に 200、Ana に 100 が返されます。数値は引用符なしで比較されます。テキスト値はクエリ内で単一引用符で囲まれます。
GROUP BY句で金額をグループ化し、ヘッダーを変更します。
顧客一人当たりの合計金額を取得するには、 グループ化 と 和():
=QUERY(A1:E6;"select B, sum(D) group by B label sum(D) 'Importe total'";1)
El resultado muestra 150 para Ana, 120 para Luis y 200 para Marta. En este caso se incluyen todos los estados porque no hemos añadido un filtro.
Si solo quieres sumar pedidos completados:
=QUERY(A1:E6;"select B, sum(D) where C = 'Completado' group by B order by sum(D) desc label sum(D) 'Ventas completadas'";1)
他の集計方法も使用できます。 avg(), count(), min() y max()グループ化する場合、集計されない選択された列は、 group by.
覚えておいてください count(D) は、D の null 以外の値をカウントします。金額を合計する機能はありません。取引件数をカウントする必要がある場合は、適切な列を選択してください。
PIVOT、LIMIT、OFFSET を使用する
その条項 ピボット フィールドの値を列に変換します。たとえば、各顧客の完了した売上をWebと店舗に振り分けることができます。
=QUERY(A1:E6;"select B, sum(D) where C = 'Completado' group by B pivot E";1)
上位3件の金額のみを取得するには、 制限 注文後:
=QUERY(A1:E6;"select B, D order by D desc limit 3";1)
と オフセット 結果から行を省略できます。このクエリは、ソート順の最初の 2 つのレコードをスキップし、次の 2 つのレコードを返します。
=QUERY(A1:E6;"select B, D order by D desc limit 2 offset 2";1)
条項は順序を守らなければならない。 select, where, group by, pivot, order by, limit, offset, label y format.
日付をフィルタリングしてテキストを操作する
A列にGoogleスプレッドシートで認識される日付が含まれている場合、10月の取引を次のように選択できます。
=QUERY(A1:E6;"select * where A >= date '2026-10-01' and A < date '2026-11-01'";1)
クエリ内の日付フィールドは次の形式を使用します 年-月-日, aunque las celdas muestren día/mes/año. Si el origen contiene texto que parece una fecha, tendrás que corregirlo antes.
Para trabajar con partes de las fechas existen year(), month() y day()ご注意ください month() は、1月を0として始まり、12月を11として終わります。. Al agrupar varios años, utiliza también el año para no mezclar meses equivalentes.
En los filtros de texto puedes emplear contains, starts with, ends with o matches比較は大文字と小文字を区別します。テキストを正規化するには、 lower() o upper().
Col1とCol2を使用して、複数のシートのデータを結合します。

同じファイルの2つのタブからレコードを重ねるには、中括弧を使って配列を作成できます。両方のタブに同じ5つの列と1行のヘッダーがあると仮定しましょう。
=QUERY({Ventas1!A1:E100;Ventas2!A2:E100};"select Col2, Col4 where Col2 is not null";1)
La primera referencia incluye los encabezados; la segunda empieza en la fila 2 para no repetirlos. Los rangos deben tener el mismo número de columnas y una estructura compatible.
En esta matriz, Col1は1列目、Col2は2列目を表します。. Son posiciones dentro del conjunto consultado, no nombres de campos. Si reorganizas el contenido de las columnas, revisa la consulta para que siga seleccionando la información correcta.
El punto y coma dentro de las llaves apila los rangos verticalmente. Esta operación no relaciona registros por un identificador ni equivale a realizar un JOIN entre tablas.
よくあるクエリエラーとその見つけ方
- 欠損値: 複数の型が混在する列では、少数派の型の値が失われる可能性があり、QUERY はそれを null として解釈します。
- クエリの解析中にエラーが発生しました。 ストレートクォート、識別子、関数、および句の順序を確認してください。
- 新しいレコードは表示されません。 それらが照会範囲に含まれていることを確認してください。100行目までの参照では、101行目は含まれません。
- 行列は展開できません。 結果が表示されるはずのセルは空けておき、結合されたセルがないか確認してください。
- データ行はタイトルとして解釈されます。 ヘッダー引数を確認してください。
数式を括弧で囲まないでください IF.ERROR または IFERROR mientras estés buscando el fallo: podrías ocultar un problema de sintaxis y confundirlo con la ausencia de coincidencias.
Cuando la consulta ya funcione, si quieres tratar específicamente un error #N/A、使用することができます SI.ND:
=SI.ND(QUERY(A1:E6;"select B, D where C = 'Devuelto'";1);"Sin coincidencias")
ファイルに関数名が英語で保存されている場合は、 IFNA. Esta función trata los errores de ese tipo; no demuestra por sí misma cuál ha sido su causa.
Para trabajar con seguridad, empieza con una selección sencilla y añade cada condición por separado. QUERY recalcula su resultado cuando cambian los datos de los que depende, pero 原点を変更したり、閉じた範囲を自動的に拡張したりすることはありません。.
私はテクノロジー愛好家であり、その「オタク」の興味を職業に変えています。私は 10 年以上、純粋な好奇心から最先端のテクノロジーを使用し、あらゆる種類のプログラムをいじくり回してきました。現在はコンピューター技術とビデオゲームを専門にしています。これは、私が 5 年以上、テクノロジーやビデオ ゲームに関するさまざまな Web サイトに執筆し、誰にでも理解できる言語で必要な情報を提供することを目的とした記事を作成しているためです。
ご質問がございましたら、私の知識は Windows オペレーティング システムから携帯電話用の Android に関連するあらゆるものまで多岐にわたります。そして、私はあなたに対して、いつでも喜んで数分を費やして、このインターネットの世界であなたが抱いている疑問を解決するお手伝いをしたいと考えています。