タイトル

きゃしーの必殺エクセル関数~問題児NAをなだめて1秒でも早く帰る~

こんにちは。きゃしーです。

第2回のみんな大好きVLOOKUPを公開した後に西園寺さんから頂いたリクエストがこちら。
(当時のタイプミスの指摘も自分から晒していくスタイル)

#N /Aかわいく無いから何とかしてください。

はい、めっちゃくちゃかわいくないですよね。 #N /A すごい問題児。今日はこの問題児をなんとかしていきます。

#N /Aってなに?

画像2

「#N/Aってよく見かけるし、邪魔だし、だいたいなんかエラーでしょ?VLOOKUPで目当てのデータが見つからない時に表示される問題児だよね」ということしか理解してなかったのでぐぐります。
Microsoftのページによると…

一般に、エラー値 #N /A は、数式で参照の対象が見つからないことを示しています。

だそうです。ふむふむ。

#N /Aを表示させないためには

提出用の資料を作成する時に問題児#N/Aが表示されているのはもってのほかなので、問題児#N/Aをなだめて引っ込んでいてもらいましょう。そこで使うのがこの2つ「IFERROR」「IFNA」

=IFERROR(関数, エラーだった場合の値)

=IFNA(関数, NAだった場合の値)

問題児#N/Aが暴れくるっているこのExcelに

画像3

「IFERROR」と「IFNA」でなだめていくと

画像2

こんな風におとなしくなってくれます!
=IFERROR(関数, "正しい値を入力してください")
 ⇒ エラーメッセージを表示できたり
=IFNA(関数, "")
 ⇒ そもそもなにもなかったことにできる
そして関数部分にはセルを指定できるので、I4のセルにVLOOKUP関数を、J4のセルに =IFNA(I4, "正しい値を入力してください") と書けます。

IFERROR,IFNA,ISERROR,ISNAの違いって?

ここまでくると、IFERRORとIFNAってなにが違うのよ?って思うじゃん。私は思ったよ。普段 IFERROR ばっかり使っているけど IFNAでいいなら、IFNAの方がタイプ数が少なくて1秒早く帰れるじゃん。詳しく説明する前に、
IFERROR, IFNA にはいとこがいてそれがISERROR, ISNA。その関数が正しいか、正しくないかをTRUE,FALSEで判定してくれる便利屋さん。
Excelの厄介者であるエラーはいくつかあって、#NULL!, #DEV /0!, #VALUE !, #REF !, #NAME ?, #NUM !, #N /A …あぁよく見かけるよねぇ。割り算の分母に0が指定されちゃったり、行の削除したら関数に指定したセルが消えたりして出てくる面々。対象のセルが「ERRORですか?」って聞くとISERRORは「TRUE(はい、エラーです)」って答えてくれる。でも、ISNAは「問題児#N/Aですか?」って聞かないと「TRUE(はい、問題児#N/Aです)」って回答してくれないのです。こんな感じにね。

画像4

同じように、IFERROR,IFNAも「エラーですか?」と「問題児#N/Aですか?」と聞いて「そうだよー」ってときは2つめに指定した値を表示してくれるということです。

画像5

ほら、もうこれで、#N/Aの部分を値コピーして、文字列になった#N/Aを値なしに置換しなくて済むでしょ(←昔は私もこんなことやってた)
これをマスターすれば、たぶん2分くらい早く帰れる(当社比)

「スキ」を押してもらえると次回のお題が見れますよ

いいなと思ったら応援しよう!