スポンサーリンク

INDIRECT関数における絶対参照・相対参照について

エクセル雑学

今回は、INDIRECT関数にて、絶対参照と相対参照がどういう動きをしているかを、少し掘り下げていくお話です。

ですので、INDIRECT関数と、絶対参照・相対参照についてはある程度理解している人向けの記事になりますので、なんのこっちゃという方は、まずそれぞれについての解説をご覧ください。

 

INDIRECT関数 - 指定したセルを参照する関数
INDIRECT関数とは INDIRECT関数とは、指定したセルの内容を返す関数です。 エクセル上での説明もほぼ同じ書き方をされていて、下記のようになってます。 指定される文字列への参照を返します。 だって他に言い方が無いんだもの。 IND...
絶対参照と相対参照($マークがある場合、ない場合の事)
絶対参照と相対参照を、できるだけわかりやすく解説 数式内でセルを参照するやり方には、絶対参照と相対参照があります。 今回は、これらの違いがいま一つよくわからないという方のために、例を混ぜずつ解説していきます。 絶対参照、相対参照とは そもそ...

 

絶対参照と相対参照が機能しない場所がある

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エラーになりにくい式を作る事ができます。

エラー(#REF!)に強い式を作る
エクセルで、行削除や列削除、シート削除といった操作をしていると、そこを参照していた数式が、#REF!エラーになって壊れたなんてことありませんか? 今回は、INDIRECT関数を使うことで#REF!エラーになりにくい式を作ろう!というお話です...

 

そして逆に、ダブルクオーテーションの外側、可変する部分をうまく活用すると、VLOOKUP関数での参照先シートを設定する時などに、楽できたりします。

VLOOKUPで複数の別シートを参照する時、式の作成楽をする方法
VLOOKUP関数で、他のシートを参照したい時ってありますよね。 1つ2つなら、まぁ手入力でいいかなってなりますが、これが10シート、20シートとなると、手入力なんてやってられません。 この作業、楽にしちゃいましょう。 その前にもし、VLO...

 

まとめ

ダブルクオーテーションの内側は完全固定、外側は可変。

覚えておくと利用価値が高い。

今日から君もINDIRECT教信者だ。(布教)

 

コメント

タイトルとURLをコピーしました