INDIRECT関数で自セルを参照する

自セルまたは自セルを起点とするセル参照で、INDIRECT関数を使ってR1C1形式で記述する方法を紹介します。A1形式の参照に比べて関係性が分かりやすく、編集による参照ずれも生じなくなります。

自セルの参照はINDIRECT関数でR1C1形式がおすすめ

INDIRECT関数の形式は以下のとおりです。

INDIRECT(参照文字列,参照形式)

R1C1形式にするには参照形式にFALSEを指定します。R1C1形式のほうが記述が簡潔で分かりやすくなるのでお勧めです。

R1C1形式の参照文字列は、自セルは"RC"、自セルの下セルは"R[1]C"といった記述になります。

自セル : INDIRECT("RC", FALSE)
下セル : INDIRECT("R[1]C",FALSE)
左セル : INDIRECT("RC[-1]",FALSE)
INDIRECT関数でA1形式でも同じ参照はできます。参照形式のTRUEの指定は省略できるものの、参照文字列にADDRESS関数などを併用するのですこし煩雑になってしまいます。
自セル : INDIRECT(ADDRESS(ROW(),COLUMN()))
下セル : INDIRECT(ADDRESS(ROW()-1, COLUMN()))

条件付き書式のトラブル対策にも(Excel 2019 以前)

条件付き書式で自セルを参照する数式でA1形式の参照を使用すると、シート編集で問題が生じることがあります。行の追加などを行うと、条件付き書式の定義が複数に増殖したり、範囲が分かれたりしてしまうのです。

この問題が起こる場合は、INDIRECT関数を使用した数式にすることで回避できます。

例 :「上のセルと同じ値」の条件指定
=OFFSET(B2,-1,0)=B2
  または
=INDIRECT("R[-1]C",FALSE)=INDIRECT("RC",FALSE)
タイトルとURLをコピーしました