複数ある別シートのデータを一覧表へまとめる INDIRECT(インダイレクト)関数
書式
=INDIRECT(<参照文字列>)
式の中で使う参照先を、セルの値の文字列で間接的(INDIRECT)に指定します。
説明
<
参照文字列
>は参照先の<
シート名
>と<
セル番地
>です。
このときに、参照先の
<シート名
>を入力したセルを用意しておいて、式の中でセル参照をします。
使用例
家計簿があって、次のようなシートの構成になっています。
1、シートは
集計表・1月・2月
の3枚があります。
2、各月のデータを、集計表へ月ごとに一覧表示させます。
ステップ1 サンプルデータの入力
1、<集計表・1月・2月>の3枚のシートを準備します。
2、1月シートと2月シートにサンプルデータを入力します。
例
1月シート <A2>セルに <400>
2月シート <A2>セルに <100>
3、集計表シートに参照先のシート名を入力します。
A1
セルに
1月
と入力
B1
セルに
2月
と入力
ステップ2 式の入力
集計表シートのA2セルに下の式を入力します。
=INDIRECT(A1&”!A2”)
<A2>セルの結果は 400
ステップ3 式のコピー
集計表
シー
ト
<
A2
>セルの式を<
B2
>セルへコピーします。
<B2>セルの結果は 100
これで他シートのデータをシート名ごとにまとめることができました。
このような家計簿にすると、各月の費目合計を一覧表にまとめることができます。
解説
1、関数式の意味
例で作成した式は下のとおりです。
=INDIRECT(A1&”!A2”)
このとき、式を入力したシートの<
A1
>セルの値は<
1月
>です。
<A1>セルの値<1月>を式に入れると下のような表現になります。
=INDIRECT(1月&”!A2”)
他シートの参照セルを文字列として<””>で囲んであります。
これと結合の<&>を外すと、関数は不要で下のようになります。
=1月!A2
これで普通の他シート参照式と同じものになります。
2、INDIRECT関数を使うメリット
1、シート名を変更したとき、集計表のシート名入力セルを変更すれば、関数式は変更しないですむ。
2、シート名はセルの値なので、関数式はコピーが可能になる。
3、参考
セルで指定したシート名が、実際のシート名と違ったときは
#REF!
のエラーになります。
終わり
By にいがた窓の会