
スプレッドシートを使用していると「別のシートにデータを抽出したい」と思うことがよくあります。特に大量のデータを扱う場合、特定の条件に合ったデータを自動的に抽出できれば業務効率が大幅に向上します。
この記事ではGoogleスプレッドシートで別のシートにデータを抽出する具体的な方法を詳しく解説します。基本的な関数から応用的なフィルタリング方法までを説明するので、初心者から中級者まで役立つ内容になっています。
別シートにデータを抽出する主な方法
スプレッドシートで別シートにデータを抽出する方法は主に以下の3つです。
IMPORTRANGE
関数を使用するFILTER
関数を使用するQUERY
関数を使用する
これらの関数を使えば別のシートからリアルタイムにデータを取得したり、特定の条件に基づいてデータを抽出したりできます。それぞれの方法について具体的な例を挙げながら解説します。
IMPORTRANGE
関数を使用してデータを抽出する方法
IMPORTRANGE
関数とは?
IMPORTRANGE
関数は別のスプレッドシートからデータをインポートする関数です。
特に異なるスプレッドシートにあるデータを参照・表示したいときに便利です。
IMPORTRANGE
関数の基本構文
=IMPORTRANGE("スプレッドシートのURL", "シート名!範囲")
- スプレッドシートのURL
- インポート元のスプレッドシートのURLを指定
- シート名!範囲
- データをインポートする範囲を指定
IMPORTRANGE
関数の使用例
例えば「データ集計」というスプレッドシートから「売上データ」シートのA1~C10のデータを別シートに抽出する場合、次のように記述します。
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXX", "売上データ!A1:C10")
IMPORTRANGE
関数の注意点
- 初めてIMPORTRANGEを使用するときは「アクセス権の許可」が必要になる
- インポート元のデータが変更されると、リアルタイムで自動更新される
- インポート元スプレッドシートが削除されるとデータが消える
FILTER
関数を使用してデータを抽出する方法
FILTER
関数とは?
FILTER
関数は、特定の条件に合致したデータだけを抽出できる関数です。
同じスプレッドシート内でデータをフィルタリングして別シートに抽出するときに役立ちます。
FILTER
関数の基本構文
=FILTER(範囲, 条件1, 条件2, ...)
- 範囲
- 抽出対象の範囲
- 条件
- TRUEまたはFALSEで返る条件
FILTER
関数の基本構文
「売上データ」シートから「2025年1月以降」のデータだけを抽出する場合、次のように記述します。
=FILTER(売上データ!A2:C100, 売上データ!B2:B100 >= DATE(2025, 1, 1))
- 売上データ!A2:C100:データ範囲
- 売上データ!B2:B100 >= DATE(2025, 1, 1):条件(2025年1月以降のデータ)
FILTER
関数の応用例
複数条件を指定することも可能です。
例えば2025年1月以降かつ売上金額が100,000円以上のデータを抽出する場合、次のように記述します。
=FILTER(売上データ!A2:C100, 売上データ!B2:B100 >= DATE(2025, 1, 1), 売上データ!C2:C100 >= 100000)
QUERY
関数を使用してデータを抽出する方法
QUERY
関数とは?
QUERY
関数はSQLに似た構文を使ってデータを抽出する関数です。
高度なデータ操作が可能で、条件を細かく指定した抽出や並べ替えができます。
QUERY
関数の基本構文
=QUERY(範囲, "クエリ", ヘッダー)
- 範囲:抽出対象の範囲
- クエリ:SQLに似た抽出条件
- ヘッダー:ヘッダー行の数(通常は1)
QUERY
関数の使用例
「売上データ」シートから「2025年1月以降」のデータだけを抽出する場合
=QUERY(売上データ!A2:C100, "SELECT A, B, C WHERE B >= DATE '2025-01-01'", 1)
QUERY
関数の応用例
2025年1月以降で売上金額が100,000円以上のデータを抽出し、売上金額の高い順に並べる場合
=QUERY(売上データ!A2:C100, "SELECT A, B, C WHERE B >= DATE '2025-01-01' AND C >= 100000 ORDER BY C DESC", 1)
ARRAYFORMULA
を使った応用
ARRAYFORMULA
関数を使えばIMPORTRANGE
やFILTER
と組み合わせてデータ抽出を自動化できます。
ARRAYFORMULA
の基本構文
=ARRAYFORMULA(式)
FILTER
と組み合わせた例
=ARRAYFORMULA(FILTER(売上データ!A2:C100, 売上データ!B2:B100 >= DATE(2025, 1, 1)))
実践的な使用例
特定の部署のデータを抽出
「営業部」だけのデータを抽出したい場合
=FILTER(売上データ!A2:C100, 売上データ!D2:D100 = "営業部")
複数の条件を満たすデータを抽出
「営業部」かつ「2025年1月以降」のデータ
=QUERY(売上データ!A2:C100, "SELECT A, B, C WHERE D = '営業部' AND B >= DATE '2025-01-01'", 1)
まとめ
スプレッドシートで別シートにデータを抽出する方法はIMPORTRANGE
、FILTER
、QUERY
の3つを使いこなせば十分です。それぞれの特性を理解して状況に応じて使い分けることで、データ管理や集計がスムーズになります。
他にもOfficeソフトに関する記事を上げています。是非色々見てみてください。