
GoogleスプレッドシートのQUERY関数を使うと、大量のデータから必要な情報だけを抽出したり、並べ替えたり、集計したりと、さまざまなデータ操作を行うことができます。この記事では抽出したデータの表示形式を変更できる、「FORMAT句」について解説しているので、ぜひ参考にしてみてください。
QUERY関数とは?おさらい

QUERY関数を使うと、クエリ(データに対する「処理・命令」)や、関数を組み合わせることで、さまざまな方法でデータを抽出できます。
中でも、QUERY関数を使う上で最も基本となるのが、SELECT句です。この句は「どの列を抽出するか」を指示するために使用します。
たとえば、データ範囲から「C列、B列」を記載の順番で抽出したい場合、数式は以下のようになります。
例:=QUERY(A2:C5,"SELECT C, B ")
QUERY関数の引数:(データ, クエリ, [見出し])

すべての列を抽出したい場合は、SELECT *
のように、アスタリスク(*
)を指定します。
ただし、SELECT句は、列の指定がない場合に基本的に省略されます。省略した場合、QUERY関数は自動的にすべての列を抽出対象とします。たとえば、データ範囲のすべての列から、B列が「りんご」の行だけを抽出したい場合、SELECT句を省略して次のように記述できます。
例:=QUERY(A4:C7,"WHERE B='りんご' ")
FORMAT句とは?基本的な使い方
FORMAT句は、QUERY関数の結果として表示される特定の列の「表示形式」を設定するために使用します。
数値の基本的な表示形式を設定する

FORMAT句では、表示形式を変更したい対象の「列」と、設定したい「表示形式」をシングルクォーテーション('
)で囲んで記述します。
たとえば、C列の価格を3桁区切り(カンマ区切り)で表示したい場合、数式は次のようになります。
例:=QUERY(A1:C5,"SELECT B, C FORMAT C '#,##0' ")
FORMAT句における#と0の違い
表示形式を設定する際に使われる#
と0
には、以下のような違いがあります。
#
: ゼロ(0
)を表示しない。- 例:
#,##0
の書式で、値が0
の場合 →0
と表示されます。 - 例:
#
の書式で、値が0
の場合 → 空白と表示されます。 - 例:
#
の書式で、値が12.3
の場合 →12
と表示されます(小数点以下は表示されず四捨五入されます)。
- 例:
0
: ゼロ(0
)を表示する。- 例:
0
の書式で、値が0
の場合 →0
と表示されます。 - 例:
0.00
の書式で、値が12
の場合 →12.00
と表示されます(指定された桁数のゼロを表示します)。
- 例:
その他の表示形式の例
数値の表示形式は「3桁区切り」のほかに、以下のようなものがあります。
- 小数点以下の表示:
- 指定桁数までゼロを表示:
0.00
(例:12
→12.00
、12.3
→12.30
) - 有効数字のみ表示:
#.#
または#0.##
(例:12.3
→12.3
、12.0
→12
)
- 指定桁数までゼロを表示:
- パーセンテージ:
- 整数パーセント:
0%
(例:0.25
→25%
、0.123
→12%
) - 小数点付きパーセント:
0.0%
(例:0.123
→12.3%
)
- 整数パーセント:
- 通貨:
- 日本円:
¥#,##0
(例:12345
→¥12,345
) - 小数点以下の日本円:
¥#,##0.00
(例:12345.67
→¥12,345.67
) - 米ドル(小数点以下あり):
$#,##0.00
(例:12345.67
→$12,345.67
)
- 日本円:
- 千円単位:
#,##0,千円
(例:12345
→12千円
、12345678
→12,345千円
)
FORMAT句で日付の表示形式を設定
日付の基本的な表示形式を設定する

FORMAT句で日付の表示形式を変更したい場合は、日付を表す「書式記号」を指定します。
たとえば、A列の「年月日」を「月と日」だけの表示にしたい場合、数式は次のようになります。
例:=QUERY(A1:C5,"SELECT A FORMAT A 'mm月dd日' ")
この数式では、A列の表示形式を、「2桁の月」と「2桁の日」に設定しています。
主な日付の書式記号:
d
: 1桁または2桁の日付 (例:12
)dd
: 2桁の日付 (例:02
)m
: 1桁または2桁の月 (例:12
)mm
: 2桁の月 (例:02
)yy
: 2桁の年 (例:22
)yyyy
: 4桁の年 (例:2025
)
日付に曜日を追加する

FORMAT句で日付に曜日を追加したい場合、日付の書式記号の後ろに、曜日の書式記号を指定します。
たとえば、A列の「年月日」を「月日(曜日)」の表示にしたい場合、数式は次のようになります。
例:=QUERY(A1:C5,"SELECT A FORMAT A 'mm月dd日(ddd)' ")
この数式では、A列の表示形式を「2桁の月、2桁の日、曜日の省略名」に設定しています。
主な曜日の書式記号:
ddd
: 曜日の省略名 (例:月
)dddd
: 曜日の正式名 (例:月曜日
)
FORMAT句に複数列を指定する方法

複数の列の表示形式を一度に変更したい場合は、それぞれのFORMAT設定をカンマ(,
)で区切って記述します。
たとえば、A列の日付を「月日」に、C列の価格を「3桁区切り」にしたい場合、数式は次のようになります。
例:=QUERY(A1:C5,"FORMAT A 'mm月dd日',C '#,##0' ")
この数式では、SELECT句を省略しているため、指定した範囲内のすべての列が抽出されます。そして、FORMAT句で指定されたA列とC列にのみ、それぞれの表示形式が適用されます。
QUERY関数のその他のクエリ
今回はFORMAT句について解説しましたが、QUERY関数で使えるクエリには、他にも以下のようなものがあります。
SELECT
句: 特定の列を指定した順序で抽出します。(詳細記事はこちら)WHERE
句: 指定した条件を満たすデータのみを抽出します。(詳細記事はこちら)GROUP BY
句: 指定した列の同じ要素ごとにデータを集計します。(詳細記事はこちら)PIVOT
句: GROUP BYで集計したデータに分類要素を追加し、表の形式を変換します。(詳細記事はこちら)ORDER BY
句: データを特定の列の値で並べ替えます。(詳細記事はこちら)LIMIT
句: 抽出する行数を指定した数に制限します。(詳細記事はこちら)OFFSET
句: 指定した数の最初の行をスキップします。(詳細記事はこちら)LABEL
句: 抽出した列のヘッダー名を任意の名前に変更します。(詳細記事はこちら)FORMAT
句: 特定の列の日付や数値などの表示形式を設定します。(この記事で解説)OPTIONS
句: ヘッダーの行数や特定の書式設定を適用しないなどの追加オプションを設定します。