2018. Dec. 17
INDIRECT関数……仕事などでエクセルをよく使うという方でもあまり聞き慣れない関数ですよね。
INDIRECT関数とはどのような時に便利な関数なのでしょうか?
たとえば、担当者別にエクセルのタブを分けて売上管理をしているけれど、担当者全員の売上数や金額の合計をひとつのシートにまとめたい場合などに手間を驚くほど減らすことができます!早速見ていきましょう!
INDIRECT関数とは、指定した文字が表す箇所を表示する関数です。関数の概要は以下の通り。
INDIRECT(参照文字列,参照形式):「参照文字列」の部分には、セル参照を表す文字列を指定し、参照先を文字列で指定することで切り替えを可能にします。さらに「参照形式」でセル参照の種類を指定することができます。
……と言われてもピンとこないと思います(汗)。ページを閉じる前にちょっと待って!
具体例を用いてみていきましょう。
INDIRECT関数はセル参照だけでなく、他のシートを参照する時にその便利さを発揮するのがポイントです。通常、たとえば「営業担当ヒントス・ペントス・セゾンの3人が商品A・B・Cをどのくらい販売したか」をこのようにエクセルで管理している場合、
下記のように、「ヒントス」の「商品A」のセルに「=ヒントス!B12」と入力し、値を反映させると思います。
しかし、その後「ペントス」「セゾン」の分、さらには「商品B」「商品C」の分も入れるとなると、いちいちひとつずつを入力していくのが少し面倒ですよね。
今回はデータが9つなのでまだなんとか頑張れますが、これが莫大な人数の営業担当・商品数の場合……めまいがしそうです。そんなときに、いちいち手入力せずに、1度の入力で、あとはコピペできるのがINDIRECT関数の醍醐味です!
では他シートの値を参照する方法を見ていきましょう。最初に1つ目のセルは先ほどのように手入力で行います。
これは、A2のセルに書かれている「ヒントス」という文字列と「!B12」という文字列(148の部分ですね)を連結し、「『ヒントスのタブ』のB12を参照せよ!」と言っている式です。
このままではただの文字列になってしまうので、この計算式全体をINDIRECT関数で囲みましょう。こうすることで、他のタブへの応用が効くため、コピペができるようになります!
そして、このINDIRECT関数を「ペントス」「セゾン」のセルにもコピペしていくと……
ちゃんとそれぞれの「商品A」の合計が反映されていますね!
1つのセルの値を求める場合はINDIRECT関数だけで使うことが可能ですが、範囲で指定してしまうと、他の関数と組み合わせて使わなければ、エラーとなってしまいます。範囲として指定する場合には、他の関数と組み合わせて使うようにしましょう。
もちろん、他のシートだけでなく他のブック(エクセルデータ)の値を参照することも可能です。
例えば別のブック「クレディデータ」の「クレディ」シートの「商品A」の合計セルを参照する場合は、
=[クレディデータ] クレディ!$B$11
と入力します。その時の参照するエクセルの置いてある場所により、「’C:¥Users¥user¥Documents¥Data」などが勝手に加わることもありますが、自動的に更新されるのでご安心を。
他のブックの値を参照する際の注意点としては、関数入力時にはあったのに、途中でエクセルブック自体を削除してしまったりすると「#REFエラー」が出てしまいます。それぞれを複雑に紐づけしすぎてしまうと、予期せぬエラーが発生する可能性が高くなりますので、可能な限り1つのブックでの管理をすることをおすすめします。
使いこなすためには慣れが必要なINDIRCT関数ですが、知っておくとデータ管理にとても便利!ぜひ今回ご紹介した少ないデータで練習をして、実際の業務に活かしていきましょう!