質問: n/aを消そうとすると正常時も消えます excelの関数使用で困っています。 下記2行はどちらも「調査あり」となるべきなのですが、#n/aを消すために2行目のようにiserror関数を加えると空白になってしまいます。 何が間違っているのでしょうか? ご教示いただけると助かります。 よろしくお願い致します。 =if(vlookup($c20,indirect($k$1&"!$b$2"):indirect($k$1&"!g$122"),6,false)=$b20,"調査あり","") =if(iserror(vlookup($c20,indirect($k$1&"!$b$2"):indirect($k$1&"!g$122"),6,false))=$b20,"調査あり","")
回答: iserror関数の使い方が、考え方から間違っています。 >何が間違っているのでしょうか? あなたの計算式は =if(iserror(vlookup(...))= b20,"調査有","") と書かれています。 vlookup関数がエラーになるとiserror(vlookup())の部分がtrueになり、結果してあなたの書いた数式は =if(true = b20, "調査有","") となってb20はtrueという値「ではない」ので""になります。 あなたのご質問への回答は、以上です。 #ご利用のエクセルのバージョンも書かれていないご相談ですが。 excel2003までを使っている場合: =if(iserror(vlookup()),"",if(vlookup()=b20,"調査有","")) excel2007以降を使っている場合: =iferror(if(vlookup( )=b20,"調査有",""),"")