こんにちは、わためめです。今回の記事では、存在しないシートのセルを参照するにはどうしたらいいか?ということをまとめています。
存在しないシートのセルの値を参照すると、「#REF!」というエラーになってしまいますよね。まだシートは存在しないけれど、跡から追加されるシートの値を参照する式をあらかじめいれておきたいという事もあるかもしれません。
このやり方を紹介していきますね。それでは、いってみましょう!
存在しないSheetを参照する
今回は、ひとつの例に沿ってやり方を紹介していきますね。
具体例:存在しないSheet2を参照する
Sheet1で存在しないSheet2の値を参照する例で説明していきます。Sheet2は後から追加する予定で、あらかじめSheet1に値を参照する式を入れておきたいというケースです。
Sheet1のセルA1にSheet2のセルA1の値を参照する、ただしSheet2は参照式入力後に追加されます。
解:存在しないシートの参照方法
存在しないシートの参照を行うには、以下の関数式が基本形です。
実際に、今回の例に当てはめてみます。Sheet1で存在しないSheet2の値を参照し、シートが存在しない場合は0を表示する場合は以下のように記述します。
もし、シートが存在しない場合0ではなく、文字列(ここでは「-」)を表示したい場合は、以下のように記述します。
値でなく文字列を表示する場合は、ダブルクォーテーション「”」で囲いましょう。
ここからは、今回使ったIFERROR関数とINDIRECT関数って何なの?を私なりに解説していきます。
今回使用した関数の解説
IFERROR関数
IFERROR関数はエラーが発生した場合にどうするか?を指定することが出来る関数です。
という使い方をします。今回の場合は、Sheet2が存在せず参照エラーとなる時に、どんな値(今回の例では0や「-」)を表示するという処理にしています。
INDIRECT関数
INDIRECT関数は文字列でセルを指定する関数です。INDIRECT関数は使い道は沢山あるのですが、今回の場合は参照先がなくてもシートを文字列で指定することができるこの関数を利用しました。
具体的には、存在しないSheet2をINDIRECT関数だと指定することができます。もし、INDIRECT関数を利用しない場合、
と指定するとします。
この式をSheet2がない状態で入力しようとすると、Sheet2ってどのExcelファイルの度のシート?!とExcelが混乱してファイルを選択するダイアログを表示してきます。
また、Sheet2がある状態では式は問題なく入力できますが、Sheet2を削除してしまうと「=IFERROR(#REF!A1,0)」と式が書き換わってしまいます。
INDIRECT関数を利用しておくと、Sheet2がなくても「#REF!」となりません。
余談:ISERROR関数でも実現できる
今回はIFERROR関数を利用しましたが、ISERROR関数とIF関数とを組み合わせても実現することができます。
ISERROR関数は前々から存在していた関数で、IFERROR関数はExcel2007から追加された関数となります。ですので、Excel2007より前のバージョンをお使いの場合は、ISERROR関数を利用すれば良いです。
さいごに
いかがだったでしょうか。Excel資料作りの参考になれば幸いです。それでは、また次の記事でお会いしましょう!