Excelで印刷用の資料を作成していると(そもそもするなという話だが)、VLOOKUPなんかでエラーが帰ってきた場合にそれを表示したくないという場面がしばしばある。その解決方法3つ。
1. 条件付き書式を使う
Excel for Mac 2011の場合だがスタイルを「クラシック」、対象を「指定の値を含むセルだけを書式設定」、値を「エラー」、書式を「ユーザー書式設定」にして書式設定で文字色を白、背景色を無しにすればエラーの場合に画面上には何も表示されなくなる。
条件付き書式設定のあまり高度な機能を使っていないので、割と古いバージョンのExcelでも動く。また、後から設定するのも比較的簡単。
ただ条件付き書式というのはされているのかされていないのか分かりにくい機能なので、人に渡す可能性があるファイルではやらないほうが良い。
2. IFとISERROR関数を組み合わせる
=IF(ISERROR(式), "", 式)
このようにすれば、式の評価結果がエラーの場合は空文字列、そうでなければ評価結果が表示される。
古いバージョンのExcelでも動き、条件付き書式と違って小細工をしていることが伝わりやすい。
ただ、空文字列は空白セルとは異なるので、その点は頭に入れておく必要がある(cf. Excelの空白セルと空文字列 - もうカツ丼はいいよな)。
また、式を2回書く必要があり、無駄に計算量が増える上、既に入力されてしまったものを直そうとするとかなり面倒である。
3. IFERROR関数を使う
=IFERROR(式, "")
IFERROR関数は第一引数に与えられた式の評価結果がエラーなら第二引数の値を返し、そうでなければ式の評価結果を返す。
式を複製する必要がなく、前後に「IFERROR(」と「,"")」を追加すれば良いので、既に入力されてしまった式への対処も比較的容易である。
ただし、IFERROR関数が比較的新しい関数なので、Excelのバージョンが古いと使えないという問題がある。といってもOffice 2007以降なら使えるので使用できる場面は広いと思う。現状では最もスマートな解決方法だと考えている。
結論
Excelで書類作成なんかしてはいけない。