indirect関数の使い方
indirect関数は文字列として入力したセル番地やセルの範囲名を、関数で参照できる形式に変換できます。
「参照文字列」にセル番地を「文字列」で指定すると、そのセルの値を表示します。
使い方として、
別シートのデータを1つに集約する。
複数の別表を切り替えて転記する。があります。
プルダウンとの組み合わせ
プルダウンリストを2つの段階に分けて作成する方法です。
絞り込まれるリストの作成にセル範囲の「名前」とindirect関数を使うことがポイントです。
まず、大項目のプルダウンリストは通常のプルダウンリスト同様に作成します。
連動するプルダウンリストは、1つめのプルダウンリストで選択した項目と同じ「名前」がつけられたセル範囲をindirect関数を使って分けることでできます。
エクセルの名前ボックスを使って、任意のセル範囲に名前をつけられるのを利用して、大項目の分類ごとにリストを作成して大項目と同じ名前をつけます。
indirect関数は、引数で指定するセルに入力されているセル範囲を参照する関数なので、
同じ名前のセル範囲をリストとして表示することができます。
エラーの原因
indirect関数で、#REF!エラーになりやすいのは「シート名を可変にする」ときです。
シート名に特殊な文字が含まれていると、#REF!のエラーがでます。
このエラーを回避するためによく使われる方法が、シート名をシングルクォーテーションで囲む方法です。
この方法は、シート名に括弧、ハイフン、チルダ、アンパサンドなどの記号が含まれている場合にエラーを避けることができます。
シングルクォーテーションが含まれている場合は、エラーになってしまいます。
シングルクォーテーションで囲まれている中にシングルクォーテーションを入力したい場合は、
シングルクォーテーションを2つ重ねます。
substitute関数を使って、1つのシングルクォーテーションを2つのシングルクォーテーションに
置き換えると、シート名がどんな名前でもindirect関数で参照できます。
別ファイルや別シートを参照する方法
indirect関数は、指定した文字列への参照を返すエクセルの検索と行列関数です。
文字列をエクセルが計算に使えるようにセル範囲に変換してくれます。
指定した文字列は、セルに記載しても直接入力しても大丈夫です。
別シートのセルをindirect関数を使って文字列で参照するときは、合計を入力したいセルにindirect関数を入力します。
indirect関数は、直接入力するか関数の挿入ボタンから、関数の分類の検索/行列グループから見つけます。
indirect関数は、文字列で指定しながらもしっかりシートやセルを参照してくれます。
vlookup関数などとの組み合わせで使うとさらに便利になります。
if関数と組み合わせ
if関数の論理式では、比較演算子を使って条件を指定する場合が多いです。
比較演算子は2つの値を比較して、その大小や等しいが等しくないかなどを判定する場合に使います。
「論理式」では、結果が「真」または「偽」になるような条件式を指定します。
「真の場合」には条件式がTRUEの場合の処理をし、「偽の場合」にはFALSEの場合の処理を指定します。
比較演算子の左右には、フィールドコードや数値、文字列などだけでなく、数式や関数も指定できます。
また、複数のフィールドを指定した条件式を記述できます。
AND関数やOR関数を使って、条件式を「カンマ」(,)でつなぎます。
AND関数、OR関数ともにわかりやすくできる関数です。
それぞれの特徴をうまく利用し使い分けるとよいでしょう。