エクセル関数[INDIRECT]を使った参照データの切り替え
一覧表、集計など、何かと出番の多いエクセルです。住所録などの一覧表作成はお手軽にできますし、ピボットテーブルを使えば、複雑な集計、データ分析も自由自在に設定することができます。
エクセルを使った、集計作業で注意することは、「間違わずに入力すること」です。当たり前ですね。
入力したデータが、原本と合致しているかを「チェック」することは当然ですが、それでもできるだけチェックの時間を短縮したいものです。
入力チェックを省力化するためには「間違わない入力」を行うことが必要です。エクセルには「データの入力規則」という、「そもそも間違ったデータを入力することができなく」する機能がありますのでこれを活用しましょう。
実際にデータを触った方が理解しやすいと思いますので、サンプルデータを用意しました。
もし、業務に活用される場合は、当社では一切責任を持ちません。十分に検証したうえで、かつ、自己責任でお願いします。
サンプル sample_INDIRECT.zip(エクセル2007ファイル、52.0kb)
使用する主なエクセル関数
- 関数1
- INDIRECT(参照文字列,参照形式)
- 用途
- 指定される文字列への参照を返します。
- 関数2
- VLOOKUP(検索値,範囲,列番号,検索の型)
- 用途
- 指定された範囲の 1 列目で特定の値を検索し、その範囲内の別の列の同じ行にある値を返します。
作成方法
[01]ブックを作成
データ入力用のブックを作成します。
サンプルでは、入力用の「データシート」と、参照用の「DB」の2シートを作りました。
[02]範囲に名前を付ける
INDIRECT関数を用いることによって、リスト中に記載された文字列から、参照先の範囲を切り替えます。そのためにはまず、参照させたい範囲に「名前」をつけておく必要があります。
材質(SUS304)に対応する配管材厚さの範囲を、( _SUS304 )と名前定義しました。
[ _ ](アンダーバー)を範囲名に使用しているのは、セル番号[ SUS304 ]との重複を避けるためです。
[03]範囲に名前を付ける
材質(SUS304)かつ、厚さ(Sch40)に対応するデータ範囲の名前を( _SUS304Sch40 )と付けました。
参照したい範囲の数だけ、名前定義を繰り返します。
参照先が多くなればそれだけ名前定義も多くなりますが、規則性をもって名前を付けていけば簡単です。
[04]データの入力規則
[メニューバー] → [データツール] → [データの入力規則]をクリックします。
[05]データの入力規則
「データの入力規則」で、入力値の種類(A)→「リスト」、元の値(S)→「=INDIRECT(F10)」を入力し、「OK」ボタンを押します。
(F10)は、入力規則を設定したいセルの参照先名が記入されているセルを指定します。(わかりずらいですね、サンプルで確認願います)
[06]入力規則が反映される
データの入力規則が反映され、参照先の切り替えができました。
[07]データ検索準備
参照先から、必要とするデータ(今回は「内断面積」)を検索するため、「&」により文字列を接続しています。
[08]データ検索
VLOOKUP関数を使い、該当するデータを引き出しました。
IF関数は、エラー表示対策。ROUNDUP関数は、数値の丸めのために使用しています。
[09]データ検索結果
必要とするデータを表示する事が出来ました。
もっと複雑なデータ処理でしたら、ACSESS等のデータベースソフトを使用すべきでしょうが、使いやすさや、他のソフトへの転用のしやすさなどを考えると、エクセルは汎用性が高く、多くの場面で使用され続けると思います。
データの入力ミスを防ぎ、入力作業、チェック作業の時間をできるだけ短縮し、データ納品した場合も、お客様が、チェックしやすく、活用しやすいデータにしておくことは必須であると考えます。