今回は、INDIRECT関数にて、絶対参照と相対参照がどういう動きをしているかを、少し掘り下げていくお話です。
ですので、INDIRECT関数と、絶対参照・相対参照についてはある程度理解している人向けの記事になりますので、なんのこっちゃという方は、まずそれぞれについての解説をご覧ください。
絶対参照と相対参照が機能しない場所がある
INDIRECT関数で参照先を指定するとき、絶対参照や相対参照が機能する場所と、機能しない場所があります。
それがどこかというと、ダブルクオーテーションで囲っている外か内かです。
ダブルクオーテーションの外側にある参照先は可変しますが、内側にある参照先は完全に固定されます。
たとえば、下記のような式の場合。
式:=INDIRECT(C1) & INDIRECT("A1")
ダブルクオーテーションで囲まれたA1は、何があってもA1のまま変わりませんので、絶対参照よりもさらに強固に固定されているようなものです。
しかしダブルクオーテーションで囲まれていないC1は、行・列の削除・挿入に合わせて自動で変わりますし、式のコピーなどの際に絶対参照と相対参照も機能します。
ダブルクオーテーションで囲むと絶対参照より強固に固定
先ほど、ダブルクオーテーションで囲まれた場合は、何があっても参照先が変わらないので、絶対参照よりもさらに強固に固定されていると書きました。
まず、絶対参照は、その数式をコピーした時、参照先が変わらないというものです。
例えば、A1セルに=$C$1という式を入れ、それを1つ下のA2にコピーした場合に=$C$2とはならず、=$C$1という式がそのまま残ります。
ですが、行や列を削除した場合は変わってしまいます。
この例の場合、B列を削除すると、A1セルの式は=$C$1から=$B$1に変わってしまいます。
しかし、=INDIRECT("C1")とした場合は、たとえB列を削除した場合でも、=INDIRECT("C1")のまま式が残ります。
この後に、#REFエラーになりにくい式の作り方を紹介してますが、そこでこの、絶対参照よりも強固に固定されているという特徴を活かしています。
特徴を理解していると世界が広がる
この性質、ふーんなるほどね程度で済ましてしまうには、少し勿体ないくらいに利用価値があります。
たとえば、ダブルクオーテーションで囲って参照先を固定することで、#REFエラーになりにくい式を作る事ができます。
そして逆に、ダブルクオーテーションの外側、可変する部分をうまく活用すると、VLOOKUP関数での参照先シートを設定する時などに、楽できたりします。
まとめ
ダブルクオーテーションの内側は完全固定、外側は可変。
覚えておくと利用価値が高い。
今日から君もINDIRECT教信者だ。(布教)
コメント