スプレッドシートを使用していると「別のシートにデータを抽出したい」と思うことがよくあります。特に大量のデータを扱う場合、特定の条件に合ったデータを自動的に抽出できれば業務効率が大幅に向上します。
この記事では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ソフトに関する記事を上げています。是非色々見てみてください。