Excel~ISREF関数でセル範囲の参照判定をしよう~エクセル
ISREF関数
ISREF関数はテストの対象がセル範囲を参照するときはTRUEを返し、参照しなければFALSEを返します。
- ISREF関数の書式はISREF(テストの対象)になります。
- テストの対象はセル範囲を参照するか判定したい対象を指定します、
- 対象がセル範囲を参照している場合はTRUEを返し、参照していなければFALSEを返します。
単一セル
下の画像の例でセルA2にA1がセル参照かどうかの判定を表示したい場合はセルA2に=ISREF(A1)と入力しEnterを押します。
テストの対象はA1がセル参照か判定したいのでA1になります。
つまりセルA2に=ISREF(A1)と入力しEnterを押すとA1はセル参照なのでTRUEが表示されます。
範囲
下の画像の例でセルA2にA1:B2がセル参照かどうかの判定を表示したい場合はセルA2に=ISREF(A1:B2)と入力しEnterを押します。
テストの対象はA1:B2がセル参照か判定したいのでA1:B2になります。
つまりセルA2に=ISREF(A1:B2)と入力しEnterを押すとA1:B2はセル参照なのでTRUEが表示されます。
計算式
下の画像の例でセルA2にA3+B3がセル参照かどうかの判定を表示したい場合はセルA2に=ISREF(A3+B3)と入力しEnterを押します。
テストの対象はA3+B3がセル参照か判定したいのでA2+B2になります。
つまりセルA2に=ISREF(A3+B3)と入力しEnterを押すとA3+B3はセル参照ではないのでFALSEが表示されます。
数値
下の画像の例でセルA2に数値123がセル参照かどうかの判定を表示したい場合はセルA2に=ISREF(123)と入力しEnterを押します。
テストの対象は123がセル参照か判定したいので123になります。
つまりセルA2に=ISREF(123)と入力しEnterを押すと123はセル参照ではないのでFALSEが表示されます。
文字列
下の画像の例でセルA2に文字列"Hello"がセル参照かどうかの判定を表示したい場合はセルA2に=ISREF("Hello")と入力しEnterを押します。
テストの対象は"Hello"がセル参照か判定したいので"Hello"になります。
つまりセルA2に=ISREF("Hello")と入力しEnterを押すと"Hello"はセル参照ではないのでFALSEが表示されます。
INDIRECT関数との組み合わせ
ISREF関数とINDIRECT関数を組み合わせると文字列が参照として有効か無効か判定できます。
INDIRECT関数はINDIRECT(参照文字列)で参照文字列がセルやセル範囲を表す場合に文字列が表すセルを参照します。参照文字列がセルやセル範囲を表さない場合はエラーになります。
下の画像の例でセルD2に=INDIRECT(C2)と入力しEnterを押すとセルC2の文字列A3が表すセルA3のデータ"ばなな"が表示されます。
例えばセルC2の文字列をA4に書き換えればセルD2の表示も"みかん"に瞬時に変わります。
INDIRECT関数を使わなければ下の画像の例のようにセルD2に=C2と入力しEnterを押してもセルC2の文字列A3が表示されるだけなので、セルを表す文字列を参照に使いたい場合はINDIRECT関数を使います。
つまり、ISREF関数とINDIRECT関数を組み合わせると文字列がセル参照として有効の場合はINDIRECT関数で参照として扱われるのでISREF関数はTRUEを返し、文字列がセル参照として無効の場合はINDIRECT関数がエラーになるのでISREF関数はエラー値を参照でないと判定しFALSEを返すので、文字列が参照として有効か無効か判定できます。
下の画像の例でセルB2にセルA2の文字列が参照として有効な文字列か判定したい場合はセルB2に=ISREF(INDIRECT(A2))と入力しEnterを押します。
セルA2の文字列A1は参照として有効なのでセルB2にTRUEが表示されます。
セルB2からセルB6までオートフィルすればA列の文字列が参照として有効な場合はB列にTRUEと表示され、参照として無効な場合はB列にFALSEが表示されます。