こんにちは、ワン太です。
Googleスプレッドシートは、Excelと並ぶ強力な表計算ソフトですが、実はExcelにはない独自の関数が豊富に存在します。
これらの関数を使いこなすことで、データ処理を劇的に効率化し、業務を大幅に改善できる可能性があります。
今回は、Googleスプレッドシート特有の神関数に焦点を当て、その魅力と活用方法を徹底解説します。

今回はスプシの基礎となる「ARRAYFORMULA」「QUERY」「UNIQUE」関数に絞って解説していきます。
スプレッドシート特有の関数の魅力
Googleスプレッドシートには、業務の効率化や自動化を強力にサポートする機能が備わっています。
複数のデータをリアルタイムで統合したり、条件を指定して情報を抽出・集計したり、一括で計算を適用することが可能です。
さらに、手作業を減らしながらデータの整理や分析をスムーズに行えるため、業務のスピードと精度が向上します。
以下の記事では、そんな便利なスプレッドシート関数の中でも特に重要な3つの関数について説明していきます。
ARRAYFORMULA関数
ARRAYFORMULA(配列数式) は、Googleスプレッドシート特有の関数で、1つの数式で複数のセルに同時に適用できる便利な機能です。
通常のExcelでは、各セルに個別に関数を入力しなければならない計算を「一括適用」できます。
ARRAYFORMULAの基本構文
=ARRAYFORMULA(計算式)
通常の計算では、各セルに手動で数式を入れる必要がありますが、ARRAYFORMULAを使うと1つの数式で全体を計算できます。
=ARRAYFORMULA(B2:B6 * C2:C6)
➡ B2:B6とC2:C6の各行に対応する値を自動計算

ExcelでいうところのSPILLと似ていますね。
しかしExcelのSPILLは全列指定すると動作が重くなることと、なにより関数が配列対応していないとスピルできないのですが、ARRAYFORMULAは配列に対応していない関数でも、強制的に配列計算することができます。
ちょっと難しい話になるので無視していいですが、似て非なるもの、ということです。
ARRAYFORMULAを使うメリット
1つの数式で複数行の計算が可能
通常のExcelでは、数式をコピー&ペースト しなければなりませんが、ARRAYFORMULAを使うと1つの数式で済みます。
手動でドラッグ&コピーする手間が不要
行数が増えても 範囲指定するだけで計算が適用 されるため、業務の効率化につながります。
リアルタイムで自動計算
データが追加されても 自動的に計算が適用される ので、手作業の修正が不要になります。
ARRAYFORMULAの活用例
IF関数と組み合わせて条件付き判定
=ARRAYFORMULA(IF(B2:B10<=10, "要補充", "在庫あり"))
➡ 「在庫が10個以下なら ‘要補充’ 」と表示

SPLITと組み合わせて自動分割
半角で区切られた氏名を苗字と名前にわける
=ARRAYFORMULA(SPLIT(A2:A11, " "))
➡ D3:D7
の商品番号を基にA列とB列を参照し、商品名を取得

TEXT関数と組み合わせて日付のフォーマットを変更
日付データを「YYYY/MM/DD」に統一
=ARRAYFORMULA(TEXT(A2:A5, "YYYY/MM/DD"))
➡ A2:A5のすべての日付を一括でフォーマット変換

ARRAYFORMULAのまとめ
特徴 | 説明 |
---|---|
1つの数式で複数セルに適用 | コピー不要で全セルに自動適用 |
IF、VLOOKUPと組み合わせが強力 | 条件分岐・データ検索も一括処理 |
リアルタイム自動計算 | 新しいデータが追加されても即反映 |
このように、ARRAYFORMULAを利用することで手作業を大幅に削減し、Googleスプレッドシートの自動化が実現できます。
QUERY関数
QUERY関数 は、Googleスプレッドシートで 表データをフィルタリング・集計・並び替えできる関数 です。
通常、フィルターやピボットテーブルを使って行う作業を、1つの関数で簡単に処理 できます。
QUERY関数の基本構文
=QUERY(データ範囲, "クエリ", ヘッダー行)
引数の説明
- データ範囲(A1:D100 など)
- 検索・集計・並び替えしたいデータの範囲
- 条件(”選択ルール”)
- どの列を表示するか、どんな条件で抽出するかを指定
- ヘッダー行(省略可)
- ヘッダーの行数(
1
や0
)。省略すると自動判定。
- ヘッダーの行数(
QUERY関数の基本操作
特定の列を表示
商品マスターから「商品名」と「価格」だけを表示
=QUERY(A1:C6, "SELECT A, B", 1)
➡ A列(商品名)とB列(価格)だけを表示

条件をつけてデータを抽出
価格が1000円以上の商品だけを表示
=QUERY(A1:C6, "SELECT A, B WHERE B >= 1000", 1)
➡ 価格が1000円以上の行のみを表示

カテゴリが「飲料」の商品を表示
=QUERY(A1:C6, "SELECT A, B WHERE C = '飲料'", 1)
➡ A1:C6の範囲を参照し、A・B列を表示。C列が「飲料」の商品のみを抽出

データを並び替え
価格が高い順に並び替え
=QUERY(A1:C6, "SELECT A, B ORDER BY B DESC", 1)
➡ A1:C6の範囲からA列とB列を表示。C列を基準に高い順に並び替え

カテゴリごとに売上を集計
カテゴリごとの売上合計を計算
=QUERY(A1:C6, "SELECT C, SUM(B) GROUP BY C", 1)
➡ A1:C6の範囲からC列を基準にB列の価格を合計し、C列の値でグルーピングして表示

カテゴリごとの平均価格を計算
=QUERY(A1:C6, "SELECT C, AVG(B) GROUP BY C", 1)
➡ A1:C6の範囲からC列を基準にB列の平均を出して、C列の値でグルーピングして表示

上位〇件だけ表示
価格が高い上位3つの商品を表示
=QUERY(A1:C6, "SELECT A, B ORDER BY B DESC LIMIT 3", 1)
➡ A1:C6の範囲からA列とB列を表示。B列を基準に3つに絞って高い順に並び替え

3番目以降のデータを表示
=QUERY(A1:C6, "SELECT A, B ORDER BY B DESC LIMIT 3 OFFSET 2", 1)
➡ A1:C6の範囲からA列とB列を表示。B列を基準に高い順に3つ表示するが、最も高い2つは除外する

QUERY関数の活用例
特定の期間の売上を抽出
2025年3月の売上だけを表示
=QUERY(A1:D6, "SELECT A, B, C WHERE D >= DATE '2025-03-01' AND D <= DATE '2025-03-31'", 1)
➡ A1:C6の範囲からA・B・C列を表示。D列の日付を参照して3/1~3/31の間の売上だけを表示する

日付の部分をセル参照にする場合はTEXT関数を利用することで可能です
=QUERY(A1:D6, "SELECT A, B, C WHERE D >= DATE '" & TEXT(開始日のセルを指定, "yyyy-MM-dd") & "' AND D <= DATE '" & TEXT(最終日のセルを指定, "yyyy-MM-dd") & "'", 1)
売上ランキングを作成
特定の店舗の売上ランキングを作成
=QUERY(A1:E6, "SELECT A, SUM(B) WHERE E='新宿店' GROUP BY B ORDER BY SUM(C) DESC", 1)
➡ A1:E6の範囲からB・C列の合計を表示。E列が「新宿店」の売上を大きい順に表示する

QUERY関数の応用テクニック
他のスプレッドシートのデータを取得する
IMPORTRANGE関数と組み合わせる
=QUERY(IMPORTRANGE("スプレッドシートURL", "シート1!A1:C6"), "SELECT Col1, Col2 WHERE Col3='重要'", 1)
➡ 別ファイルの「シート1」のA1:C6を参照。3列目に「重要」の表記があるデータを表示する
スプレッドシートURLとは
“スプレッドシートURL”とは、スプシのアドレスの中にある赤い部分の英数字のことです。
参照元アドレスが「https://docs.google.com/spreadsheets/d/ABCDEF123456789/edit?gid=0」だとしたら、
数式は「=QUERY(IMPORTRANGE(“ABCDEF123456789“, “Sheet…」 となります。


スプレッドシートURLは、さまざまな集計作業に利用できるので必ず覚えておきましょう
QUERY関数まとめ
特徴 | 説明 |
---|---|
フィルターやソート不要 | 手作業でフィルターをかける必要なし |
リアルタイム更新 | データが変更されると自動で反映 |
IMPORTRANGEと組合せが便利 | 他のスプレッドシートのデータも分析できる |
QUERY関数を使えば、スプレッドシートのデータを効率的に管理・分析できます。
この関数はスプレッドシートの利便性を象徴するデータ処理関数なので必ず覚えておきましょう。
WHERE
で条件に合うデータを抽出し、ORDER BY
でランキングを作成。さらにIMPORTRANGE
を使えば他のスプレッドシートのデータも活用できます。
検索・並び替え・集計を自動化し、データ処理をスムーズに行うためにぜひ活用してください。
UNIQUE関数
UNIQUE関数 は、Googleスプレッドシートで 指定した範囲内の重複を自動的に削除し、一意の値(ユニークなデータ)を抽出する 関数です。
手動でフィルターをかける必要がなく、リアルタイムでデータの重複を除去できるため、データ整理やリスト作成に役立ちます。
UNIQUE関数の基本構文
=UNIQUE(範囲)
引数の説明
- 範囲(A1:A100 など)
- 重複を除去する対象のデータ範囲を指定
UNIQUE関数の基本的な使い方
単一列の重複を削除
商品リストから重複を削除
=UNIQUE(A2:A10)

➡ 重複が削除されたリストが作成される
表にあるように「りんごとリンゴ」の区別もちゃんとつけてくれます
複数列の重複を削除
商品リスト(カテゴリ・商品名)で重複を除去
=UNIQUE(A2:B10)

➡ カテゴリと商品名の組み合わせでユニークなデータを取得
UNIQUE関数の応用テクニック
ソート(並び替え)と組み合わせる
重複を削除し、アルファベット順に並び替え
=SORT(UNIQUE(A2:A10), 1, TRUE) // 昇順(A→Z)
=SORT(UNIQUE(A2:A10), 1, FALSE) // 降順(Z→A)
=SORT(範囲, 並べ替え基準となる列番号, TRUE または FALSE)

UNIQUE関数まとめ
特徴 | 説明 |
---|---|
重複を自動削除 | 手動でフィルターを使わずに重複を削除できる |
リアルタイム更新 | データが追加されると自動でリストを更新 |
抽出&並び替えもできる | 固有の商品を抽出後に並び替えもできて便利 |
UNIQUE関数は、Googleスプレッドシートでのデータ整理に欠かせない便利な関数です。
重複を自動的に削除し、一意のリストを作成できるため、大量のデータを扱う際に役立ちます。
スプレッドシートで効率的にデータを管理するために、明日からUNIQU
E関数を活用しましょう!
集計に便利な関数まとめ
Googleスプレッドシートの便利な関数を活用すれば、データ整理や分析の効率が大幅に向上します。
重複を自動的に削除してリストを作成したり、特定の条件でデータを抽出・集計したり、1つの数式で複数のセルに適用して手作業を減らすことが可能です。
これらの機能を組み合わせることで、データ管理を自動化し、よりスムーズに業務を進められるようになります。
効率的なデータ処理を実現し、業務の精度とスピードを向上させましょう。