エクセルで行追加や削除すると数式の参照設定がエラーになる

インダイレクト関数の使い方

エクセルで行列の追加や削除を行うと数式の参照設定が自動で変更されてたいへん便利な機能です。

商品Aから商品Fの合計金額表示している関数 =SUM(C4:C6) 商品Fを削除(6行目)すると数式が=SUM(C4:C5)と自動で変更になる

数式が変わる

しかし、意図せずに参照設定が変わりエラーになる時もあります。

SUM(C4:C6)の4行目~6行目を削除するとSUM(#REF)と数式がエラーになりました。

数式がエラーになる

参照先のセルがなくなった時に表示されるエラー「#REF!」エラー は、もともとあった数式が「#REF!」に変更されるため元の数式が分からなくなります。

困ったことに自動で変わる数式の参照は絶対参照にしても数式がかわります。

絶対参照にしてもエラーになる

参照設定が自動で変更になる機能はOFFにできないので、行列の追加や削除しても参照が変更にならないように文字列でセルを参照する
INDERECT(インダイレクト)関数を今回、紹介します。

INDERECT関数の使い方

関数の仕様

=INDIRECT(参照するセルの番地、参照方法)

参照するセルの番地は 例 ”A1”、”A1:B10”のように文字列で指定します。

参照方法は TRUEとFALSEで指定します。

TRUEは A1形式 FALSE はR1C1方式になります。

例 =INDIRECT(“A1”,TRUE)

参照方法は省略可です。=INDIRECT(“A1”)のようにしても問題ありません。

先ほどの例でをINDIRECT関数を使い =SUM(INDIRECT(“C4:C6”,TRUE))

行を削除しても数式がエラーにならない。

インダイレクト関数を使う

以上がINDIRECT関数の使い方になります。

さいごに

行列の追加や削除を行うVBAなどを作成している場合に、よく「#REF!」になることがあります。もし、行列を参照設定を固定したくなった場合は、INDERECT関数、今回の記事を参考になれば幸いです。