大量のExcelシートから値を参照する際には【INDIRECT関数】でシート名を指定する

大量のExcelシートから値を参照する際には【INDIRECT関数】でシート名を指定する

Excelのシート

Excelでは1シート内にデータが収まりきらないことがあります。

その際によく用いられる手段が、複数のシートに分けて管理する方法。

シート切り替えで視覚的かつ直感的に情報を整理できます。

しかし、シートが大量にあるケースではかえって管理が難しくなることも。

例としてはシート名が「月曜」「火曜」…、あるいは「1日」「2日」…など、類似シートが数枚~数十枚と並ぶパターンです。

このパターンで情報を取り出す場合、INDIRECT関数を使ってシート名を指定することで管理が容易になります。

複数シートの値を参照する方法

複数枚のシートから値を取得する方法を紹介します。

データ例

以下のような曜日ごとの売り上げ集計ファイルを用意しました。

シートは合計6枚あり、「集計」および「月曜」「火曜」「水曜」「木曜」「金曜」それぞれに売上データが記載されています。

「月曜」から「金曜」までのシートには製品ごとの売上と合計金額が記載されています。

各シートの合計金額を「集計」シートに表示させることを目的とします。

失敗例

まずは失敗例です。

「集計」シートのB2セルに次のように記述しました。

=月曜!B5

一応これでも「月曜」シートの値は取得できます。

ただし、とても効率が悪いです。

すぐ下の項目の「火曜」以降でオートフィルが使えないという問題があります。

このままでは「火曜」以降すべての関数に対して手入力しなくてはいけません。

シート5枚程度ならまだ良いのですが、例えば30日分のシートの場合では大変な手間がかかります。

INDIRECT関数の使い方

オートフィルを使って値を取得するために便利なのがINDIRECT関数です。

INDIRECT関数は引数に文字列を指定して参照を返すことができます。

今回の例では次のように指定しました。

=INDIRECT(A2&"!B5")

INDIRECTの引数に入力した「A2&”!B5″」の意味を解説します。

最初の「A2」は「月曜」という文字列が入ったセルです。

「&」は文字列を繋ぐ記号です。

シート名を意味する「!(エクスクラメーションマーク)」、および参照先セルの「B5」を文字列を表す「””(ダブルクォーテーション)」で囲っています。

以上を組み合わせた結果が「A2&”!B5″」です。

「月曜」を直接入力でなくセル参照としたことで、火曜以降の値をオートフィルで表示できるようになりました。

シート数が多くなればなるほどINDIRECT関数を使った上記の手法は効果を発揮します。

関数を活用して面倒な手入力はできる限り省きたいものです。

まとめ

INDIRECT関数を使ってシート名を参照する方法を紹介しました。

  • 膨大な量のシートを使う際はシート名の直接入力は避ける
  • INDIRECTは指定した文字列で参照を返す関数
  • シート名をINDIRECT関数の引数に使うことで別シートの値を取得可能

当サイトでは各種PCスキルを公開しています。

(Visited 428 times, 4 visits today)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です