Excelで複数シートを対象に検索・抽出する方法

エクセルで複数シートを対象に検索する方法

当サイトはアフィリエイト広告を利用しています。

Excelで一つのブックにシートを複数作成していると、探しているデータがどのシートに入力されているかわからなくなったり、データをまとめる作業が煩雑になったりします。

そこで今回は、Excelで複数シートを対象に検索する方法や、検索して一致したデータを抽出する方法などをご紹介します。

Excelで複数シートを対象に検索する方法

データの場所を検索したいときは、「検索機能」を使いましょう。

検索機能を使ってデータの場所を検索するには、[Ctrl]+[F]で「検索と置換」を表示し、「検索する文字列」に検索したい文字列を入力⇒「オプション」⇒「検索場所」で「ブック」を選択⇒「すべて検索」をクリックします。すると、検索する文字列と一致するシートの名前やセル番地が検索結果として表示されます。検索結果をクリックするとその場所に飛びます。

Excel

Excelで複数シートを対象に検索して一致したデータを抽出する方法

検索して一致したデータを抽出したいときは、「VLOOKUP関数」と「INDIRECT関数」を使いましょう。

VLOOKUP関数(ブイルックアップ関数)は、範囲の1列目で値を検索し、一致するセルと同じ行にある値を返す関数です。

VLOOKUP関数の構文

VLOOKUP(検査値, 範囲, 列番号, [検索の型]

検査値(必須)
検索する値を指定する。
範囲(必須)
検索する値と取得したい値を含む範囲を指定する。
列番号(必須)
取得したい値が【範囲】の何列目にあるか指定する。
検索の型(省略可)
検索方法を以下のいずれかで指定する。省略すると「TRUE」として処理される。
  • TRUE:近似値で検索する。【範囲】の1列目を昇順に並べ替えておく必要がある。
  • FALSE:完全一致で検索する。【範囲】の並べ替えは必要ない。

INDIRECT関数(インダイレクト関数)は、文字列で指定されたセル番地の値を返す関数です。

INDIRECT関数の構文

INDIRECT(参照文字列, [参照形式]

参照文字列(必須)
取得したい値があるセル番地を「A1形式」または「R1C1形式」の文字列で指定する。
参照形式(省略可)
【参照文字列】の種類を以下のいずれかで指定する。省略すると「TRUE」として処理される。
  • TRUE:【参照文字列】をA1形式とみなす。
  • FALSE:【参照文字列】をR1C1形式とみなす。

(例)各支店の4月~6月の売上高を集計シートに抽出する。

Excel

集計シートのB3に、=VLOOKUP($A3,INDIRECT(B$2&"!A:B"),2,FALSE)と入力します。

Excel

B$2の値は「A支店」なので、INDIRECT(B$2&"!A:B")は、INDIRECT(A支店!A:B)つまり「A支店シートのA列からB列」という意味になります。

B3の数式をD3までオートフィルし、続いてD5までオートフィルします。これで各支店の4月~6月の売上高が抽出されます。

Excel

Excelで複数シートを一枚にまとめる方法

Excelでは、各シートの数値を合計して一枚にまとめることや、複数シートの指定範囲を一枚にまとめることなどができます。

前者は「統合機能」を使うことで、後者は「マクロ」を使うことで可能です。

詳しくは以下の記事で解説していますので、そちらを参考にしてみてください。

まとめ

今回は、Excelで複数シートを対象に検索する方法や、検索して一致したデータを抽出する方法などをご紹介しました。

データがどのシートにあるか知りたいときは、検索機能を使うのがおすすめです。検索して一致したデータを抽出したいときは、VLOOKUP関数とINDIRECT関数を使うといいでしょう。

データがどのシートにあるかわからなくてお困りの方や、各シートのデータを別シートに抽出したい方は、今回ご紹介した方法をぜひ試してみてくださいね。