Excel関数INDIRECTで別シートを参照してオートフィルで時間を短縮する方法

Excel関数INDIRECTで別シートを参照してオートフィルで時間を短縮する方法

今回はINDIRECT関数を用いて「別シートを参照してオートフィルで時間を短縮する」方法を紹介します。

まず、INDIRECTとはどのような関数なのか?初めて聞く方もいらっしゃると思います。実はとても実用性のある関数なのです。主に、集計表を作成する際に使用することが多いのではないのかと思います。

では、上記の方法を紹介する前に簡単にINDIRECT関数について説明します。

INDIRECT関数とは?

指定したセルの内容を参照することができます。例えばA1セルに入力されている「100」を参照すると、同じ「100」という内容を反映させます。関数式としては、以下のようになります。

【INDIRECT(参照文字列)】

「=(イコール)と同じ意味では?」そう思った方、その通りです。
しかし、INDIRECT関数では「セル参照を介して間接的なセルを指定する事ができる」という最大の利便性があります。

実際にINDIRECT関数を使用してみる

実際にINDIRECT関数を応用した「別シートを参照してオートフィルで時間を短縮する」方法を、例を用いて紹介します。

例として、上記のような集計表を使用します。 集計表作成では、「各シートの合計値を参照しなければならない」という場面が多いのではないでしょうか。そこで、各支社の売上実績表を作成してみました。

「売上集計表」を集約表として、支社別のシート「北海道~沖縄」の売上合計を参照させる内容になっています。
今回は、各支社にあるA~D支店の1・2・3月の売上実績を例として使用します。

最も多く利用される参照方法はコレ

「売上集計表」にて各支社の売上合計を参照するにあたり、最も多く利用されるのが下図のような方法ではないでしょうか。

実際に「売上集計表」のB3セルに「北海道」支社の1月売上合計(「北海道」シート内のB7)を参照させてみました。図のように、セル内に反映される数式は「シート名!指定したセル」となります。

【方法】

  1. 参照させたいセルに「=」を入力
  2. 該当シートの指定セルをマウスでクリックし反映させる

この作業を毎回繰り返すのは少し時間がかかりますよね。

そこで、INDIRECT関数の使い方を見ていきましょう!

INDIRECT関数の使い方

今回の集計表では「支社ごとの集計」となり「支社ごとのシート」があります。そのため、上記の図(緑の四角で囲った部分)を見ると分かるように以下の2項目が共通します。

  • 参照するキー(「売上集計表」A3~A6)
  • シート名(北海道~沖縄)

この共通している点を利用した計算式が「INDIRECT関数」です。

実際に利用したのが上記の図になります。「売上集計表」のB3セルにINDIRECT関数を使用し、「北海道」支社の1月売上合計を参照しています。先ほどの説明との違いは、それぞれの参照するキーとシート名が同じため『B3セルにはシート名「北海道」と入力しない』という部分です。

【方法】

  1.  同様の意味をもつA3セルを指定
  2.  参照先である「北海道」シートの合計値が入力されているセルB7を指定セルとして入力
    します。

このようにB3のセルにはINDIRECT関数(黄色い四角で囲った部分)が入り、内容には「シート名と同じ参照キー」&!「指定セル」という計算式が入ります。

INDIRECT関数を使用してオートフィル

計算された「売上集計表」のB3セルをオートフィルしたのが上記の図になります。参照するキーがA3からA4、A5、A6となり「売上集計表」のA列にある「北海道~沖縄」まで同じシート名のB7(1月の合計)を参照することができます。

同様にC列の2月・D列の3月にも計算式を入力していきます。2月の場合は、「北海道」シートのC7、3月の場合はD7に合計値が入力されているため、それぞれを指定セルとして入力します。

このように、計算式を入力した「売上集計表」のC3・D3セルを「沖縄」までオートフィルさせると、全ての売上結果を反映させることができます。

INDIRECT関数を使用して仕事の効率化を図る

今回紹介したように別シートに入力されているセルを参照する場合、マウスで一つ一つセルを指定して反映させることも可能です。ですが、INDIRECT関数を用いた参照方法が最も効率が良く結果を表示させられるのではないでしょうか。

参照するシートが多ければ多いほど時間短縮に繋がりますよ。また別シートに限らず、異なるブックに入力されているセルを参照する場合にも活用することができます。

是非一度、集計表を作成する際にINDIRECT関数を使用して仕事の効率化を図ってはみませんか?