脱初級者のExcel関数の一つINDIRECT関数。経験上この関数を知っている人はかなり少ないですが、知っているといざという時に非常に役に立ちます。

INDIRECT関数は参照するセルを文字式で設定することができます。この性質をうまく使うとシート名を可変にして集計することができるのです。

よくあるExcelファイルとして、テンプレートのシートが複数あり全てのシートの同じセルアドレスに同じ情報が入力されていたりします。

これをSummaryシートに集計しようとなると都度シートとリンクさせる必要があります。

これをINDIRECT関数で自動化することが可能です。

  1. 1列目に項目対応するセル番号を手入力します。
  2. INDIRECT関数の()内にてセル参照先を作ります。B3セルは=A!B4でしたから、シート名!セル番号となればよいのです。シート名はA3セル(A)、セル番号はB1セル(B4)なのでINDIRECT(A3&”!”&B1) → INDIRECT(A!B4) → =A!B4とExcel内で転換してくれるわけです。
  3. セル参照に$マーク(ショートカット:F4)を付けて、一気にコピペすれば完成

INDIRECT関数はTEXT関数のように頻繁に使う関数ではありません。しかしながら、このような状況下では一気に作業効率化を図れます。裏を返せば、最後にINDIRECT関数で集計できることを知っていれば、データ入力用テンプレートを作り全く同じフォームで各情報を入力するという、最後の報告形式から入力方法を考える ⇒ 結果として集計しやすいデータベースができるところが脱初級者だと考えています。この発想がなく入力フォームがバラバラで最後の集計に無駄な時間をかけていないでしょうか?

INDIRECT関数にはもう一つの使い方があります。これはExcelの仕様ですが、いったんリンクされているシートやセルが削除によってリンクできなくなるとREFエラーとなり、自動で復活させることができません。特に旧シートを削除し新しいシートを追加して新シート名を旧シートと同じにしても#REF!エラーのままです。INDIRECT関数にて参照することでこのエラーを回避することができます。

関連記事