サイトについて      連絡先   検索

エクセル 2016 ISREF 関数:指定した値が有効なセル参照か判定する

はじめに

エクセル 2016 の ISREF 関数の使い方を紹介します。

ISREF 関数は指定した値が有効なセル参照か判定します。有効なセル参照なら TRUE を返します。

IF 関数」と「INDIRECT 関数」を組み合わせて、有効なセル参照のときだけ処理できます。

構文

ISREF()
が有効なセル参照のときに TRUE を返します。それ以外のときは FALSE を返します。

引数「値」数値、文字列、セル参照、関数などを指定できます。

セル参照とは

セル「B2」を参照するときに=B2と入力します。このB2の部分のことです。セル「B3」~「B4」ならB3:B4です。

1

名前の定義の使い方」で紹介しているように名前の定義をしているときは、その名前もセル参照になります。例えば範囲という名前を定義すると範囲も有効なセル参照です。

2

使用例

引数「値」にいろいろな参照を指定して判定する。

=ISREF(B2)
=ISREF(B2:C3)
=ISREF(B0)
=ISREF("B2")
3

引数「値」に名前の定義をした値を判定する。範囲という名前を定義しています。

=ISREF(範囲)
=ISREF("範囲")
=ISREF(名前)
4

解説

有効なセル参照かどうかは引数「値」の頭に=を付けて実際に参照できるか試してみても確認できます。

この関数の特殊なところは=ISREF(B2)としたときに、セル「B2」の値を参照しません。B2というセルや名前が存在するかどうかを判定します。

セルの参照形式が「A1 参照形式」か「R1C1 参照形式」で有効なセル参照かどうかも変わります。「A1 参照形式」ではB2が有効でも「R1C1 参照形式」では無効になります。逆に「R1C1 参照形式」ではR[1]C[1]が有効になり「A1 参照形式」では無効になります。

参照形式を切り替えるには「列の表示を数字とアルファベットで切り替える」をご覧ください。

"B2"のように文字列を指定するとそれは参照ではないので「FALSE」を返します。これを有効にしたいときは「INDIRECT 関数」を使って文字列を実際の参照に変換します。

5

IF 関数」の条件に指定して、「INDIRECT 関数」の結果が有効なセル参照かチェックできます。有効なときだけ処理をして、エラーの時は何も表示しないなどエラー処理ができます。

例として「INDIRECT 関数」の結果を「SUM 関数」で合計を求める範囲にしたいとします。

まずは「INDIRECT 関数」でエラーが発生するかチェックします。

=ISREF(INDIRECT(C3))
6

その結果を「IF 関数」でエラー処理します。判定用と結果用で同じ「INDIRECT 関数」を 2 回実行します。

=IF(ISREF(INDIRECT(C3)),SUM(INDIRECT(C3)),"")
7

セル参照以外のすべてのエラーも判定対象になりますが、「IFERROR 関数」を使用すると、次のように簡素に書けます。

=IFERROR(SUM(INDIRECT(C3)),"")