エクセル:参照セルを変更可能にできる「INDIRECT」関数

この記事は約3分で読めます。
記事内に広告が含まれています

操作画面

こんにちは、さち です。

先日、エクセルを使っていて
セル番号を直接指定したいということがありました。

普通の文字として打ったセル番号を
そのまま参照セルの指定に使う方法はないだろうか…。

そんな時に役立つのが「INDIRECT」関数です。
エクセルってホント色々な関数があるんですね。

スポンサーリンク

セル番号を直接入力できる「INDIRECT」関数

まずは、「INDIRECT」関数の使い方を確認。

= INDIRECT( セル番号, 記述形式 )

記述形式は「TRUE」「FALSE」のどちらかで記述。
TRUE では、「A1」といった一般的な形式で「セル番号」を記述
FALSE では、「R1C1形式」で「セル番号」を記述する。
省略した場合は「TRUE」になる。

サンプルがこちら。
セル番号の指定は「A4:A6」のような複数指定もできます。
操作画面

「INDIRECT」関数を使用すると
セルを「文字列」で書いて直接記述できるため
参照するセルをよく変更するような場面で使うと便利です。

「記述形式」は、通常「TRUE(A1形式)」でよいですが
列番号を返す「COLUMN」関数と併用する場合などは
「FALSE(R1C1形式)」の方が便利かもしれません。

「INDIRECT」関数ならセルを挿入しても動かない

参照セルを変更可能にするのに便利な「INDIRECT」関数ですが
逆に、「固定」に使うことで役立つ例も見てみましょう。

  1. 例えば、このような成績表があります。
    テストが行われる毎に「前回との差」を出すようにしましょう。
    通常は、セルを指定して「今回の点 - 前回の点」という計算をしますよね。
    操作画面
  2. 「前回との差」が計算できました。
    操作画面
  3. 「第3回」のテストが行われたので列を挿入しました。
    しかし、「前回との差」に変化はなく「第2回」と「第1回」の差のままです。
    操作画面
  4. それもそのはず。
    セルの移動,挿入を行うと参照セルも自動で移動するのです。
    普段ならこの仕様は非常に便利なのですが、今回の場合は逆に不都合…。
    操作画面
  5. そこで、今度は「INDIRECT」関数を使ってみましょう。
    INDIRECT関数 でセル番号を直接指定しました。
    操作画面
  6. 「前回との差」が計算できました。
    操作画面
  7. 「第3回」の結果を挿入しました。
    今度はちゃんと「前回との差」が「第3回」と「第2回」の差になりました。
    操作画面
  8. 「INDIRECT」関数を使って「文字列」でセル番号を指定したので
    新たなセルを挿入しても参照セルは変更されないわけです。
    操作画面

ただし、「INDIRECT」関数を使う場合は
オートフィルで他の教科の式を入力できません。

今回の例のような場面でオートフィルを使いたい場合は
行の指定に「ROW」関数を使い
= INDIRECT( "C"&ROW() ) - INDIRECT( "D"&ROW() )
のように記述しましょう。
(「ROWS」関数でなく、「ROW」関数です。注意!)

【関連記事】

   → エクセル(Excel)で知ってると便利なこと 目次

コメント

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