【Excel】何が違うの?IF関数とIFERROR関数の使い分け

0





    こんにちは!

    先日終了した楽天スーパーSALEで寝落ちしてしまい、10店舗完走できなかった鈴木( @hello_shinfuna)です。

    ポイント6倍止まりで終わっちゃいました。残念、無念(T_T)

     

    さて、今日は先日生徒さんからも質問のあった、IFとIFERRORの使い分けについて説明したいと思います。

    どちらもIFと名がついているので、条件により結果を返すというところは同じです。

     

    簡単に言えば、IFは論理式に入力した条件に合うか(真=TURE)、合わないか(偽=FALSE)ですが、

    IFERRORの場合は、指定した数式がエラーかどうかを判断して結果を返すというものです。

     

    ここまで読んだだけでも分かると思いますが、IFはとIFERRORは全く別物の関数です。

    では、何故生徒AさんからIFとIFERRORは何が違うか分からないと質問があったのでしょうか。。。

    順に見ていきましょう!

     

     


    スポンサーリンク

     

     

     

    IFもIFERRORも空白処理ができる!ここが間違いやすいポイント!

     

    見積書や請求書などExcelでフォーマットを作成する際、数式は入力しておいて必要な時に値だけ入力もしくは選択すると自動的に計算され後は印刷するだけといった状態に作っておくことが多いと思いますが、ここで役立つのが空白処理ですね!

    フォーマットの状態だと値は未入力の状態です。でも数式は入っているので何かしら結果を返してきますよね。

    その際、よく表示されるのがデータがありませんよという意味で表示される#N/Aです。

    皆さん一度は見たことあるんじゃないでしょうか。

     

     

     

    単位&単価には入力される項目と紐付いた値が参照先から呼び出されて表示されるという仕組みになっていますが、項目が入力されていないと参照先の値を引っ張ってこようにも出来ないということで#N/Aが表示されてしまいます。

    適切な項目を入力さえすれば正しい結果が表示されるので間違いというわけではないのですが、#N/Aが表示されてると印刷する際に困りますし、何より見た目が良くないですよね??

    値が入力された場合にのみ計算された結果が表示された方が美しいです!

     

     

     

    そのために必要な処理が関数による空白処理です。

    ちなみに単位と単価のセルに入力してある空白処理はIFERRORを使ってますが、小計セルはIF関数で空白処理を行ってます。

    どちらも空白処理をしたい場合に用いる関数ということは理解できましたでしょうか?

    では何故、同じ空白を表示させるのにIFとIFERRORを使い分ける必要があるのかを見ていきましょう!

     

     

     

    ちなみに#N/A以外のエラーメッセージは以下の通り。

    表示されたメッセージから何が間違っているのかが分かるので覚えておくといいですよ!

     

    #N/A → データが存在しない場合のエラーメッセージ

    #NAME? → 数式の名前に間違いがある場合のエラーメッセージ

    #VALUE → 数式自体に誤りがある場合のエラーメッセージ(引数や括弧の数が合わない、参照先のセルに問題がある、等々)

     

     

    IFERROR関数で空白処理できるのは数式がエラーの場合のみ!それ以外はIF関数を使うべし!

     

    そもそもIFERROR関数の引数を見ると、このようになっています。

     

    =IFERROR ( [エラーかどうかを判定したい数式]  ,  [エラーの場合の値] )

     

    IFの場合は論理式にかなり幅広い条件を指定できましたが、IFERROR関数の場合はエラーがどうかを判定したい数式のみ判定されます。逆に言うと、IFでは数式のエラー判定は出来ないため、使い分けが必要になるというわけですね。

     

     

    #N/Aが表示されているセルに入力されている数式はが検索値がなくてエラーを返しています。

    そのため下記のようにIFERROR関数をネストしてあげることで、エラー(#N/A)なら空白(” ”)を表示させているわけです。

     

     

    このようにIFERROR関数とVLOOKUP関数との組み合わせ処理はかなり役立つ技なので覚えておいて下さい!

    ちなみにIF関数では単位・単価の列を空白処理することは出来ません。

    =IF(D18="#N/A","",VLOOKUP(D18,テーブル1,3,0))

    なんだかこのような数式を組めば出来るのでは?と思うかもしれませんが、#N/AはExcelから自動表示されるエラーメッセージのため文字列としては認識されないんですね。

     

    さて、ここで一つ気になることがあります。

    単位・単価のセルをIFERRORで空白処理したところ、小計のセルの表示が#N/Aから#VALUEに変わりました。

     

     

    小計のセルに入力されている数式は数量×単価という単純なものです。

    通常、空白セル×空白セルと計算した場合、結果は0が返りますが、今回は参照先が空白なのに結果は#VALUEになってしまいました。

    #VALUEの意味は "参照先のセルに問題がある" でしたね。

    今回単価セルをIFERROR関数を使って空白処理しましたが、実際には数式が入っていますよね。

     

    この数式はそもそも#N/Aが表示されるのを表面的に隠すためのものであって、内部的には#N/Aのままです。

    このような状態のセルを参照してるので "参照先のセルに問題がある" に該当してしまうんですね。

     

    では、この#VALUE表示も空白処理をしましょう!

    エラーが表示されているのでIFERRORの出番か!?と思いがちですが、ここはIF関数を使うのが正解なのです。

    ?????ですよね(;´Д`)

     

    IFERROR関数の定義をもう一度よく思い出してみてください。

    判定する条件は "数式がエラーかどうか" でしたね。

    この場合、小計セルに入力されている数式は =C18 * E18 という至ってシンプルな掛け算でが、#VALUEが返ってきてるのでIFERROR関数でも判定することは可能です。

     

     

    空白になりましたね!

    これで一件落着かなと思いがちですが、ここで落とし穴が一つ!!

    項目を入力すると単位と単価がVLOOKUP関数により表示される仕組みになっていますよね。

    この状態を再現してみましょう。↓

     

     

    なんと!

    VLOOKUP関数によって単位と単価が表示されましたが、数量が未入力状態だと小計は"0"が表示されてしまいまいた!

    数量を入力しない見積書なんてないので数量を入力するまでの間のことですが、これはちょっと悔しいですよね (T_T)

    まず、何故空白ではなく表示が"0"になったかですが、小計セルに入力されている数式は C18*E18 です。

    この内、E18 は#N/A が表示されるのを隠していました。このE18が項目を入力することによって正しい値が返ってきたので#N/Aではなくなりましたね。

    そう、このタイミングでもうIFERRORでは判定不能になってしまったのです。

    というわけでIF関数の出番ですね。

     

     

    数量が入力されるまでは空白を表示するという数式を入力して一件落着です!

     

    参考までに数式は

    =IF(C18="","",C18*E18)

     

    生徒Aさんは#VALUEが表示されていたのでIFERROR関数で空白処理をしたのですが、レッスンではIFを使って下さいと説明があったので何故???となってしまったというわけですね。

     

    めでたし、めでたし。

     

     

     

     

     


    いいね or シェアして友達と記事を共有しよう



    このブログを定期購読するなら下のボタンをクリック!

    follow us in feedly

    パソコンの基礎からMOS対策講座まで、船橋市のわかりやすいパソコン教室です!
    まずは、無料体験からお気軽にご連絡ください。

    お問合せ(お電話)047-406-5786
    〒273-0864 船橋市北本町1丁目830-1 イオンタウン新船橋店 マックスバリューさん2F 


     

     

     

     

    スポンサーリンク


    コメント
    コメントする








       

    calendar

    S M T W T F S
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    << September 2017 >>

    教室情報

    ハロー!パソコン教室イオンタウン新船橋校
    ハロー!パソコン教室
    イオンタウン新船橋校
    〒273-0864
    千葉県船橋市北本町1-19-50
    イオンタウン新船橋2F
    お問合せ(お電話)
    047-406-5786

    営業時間などの詳細はこちらをご覧ください
    ハロー!パソコン教室イオンタウン新船橋校無料体験レッスンのお申し込みはこちらから
    417.gif

    リンク

    イオンタウン新船橋校はこんなところ!

    明るく楽しいスタッフ達があなたのやりたいことを徹底的にサポートします!
    P1020171.jpg
    レッスンは集合形式ではなく、個別学習式。パーテーションで区切られた個別空間でご自分のペースでレッスンを受講いただけるのが人気の理由の一つです!

    Twitter

    スポンサーリンク

    selected entries

    categories

    archives

    recent comment

    • 【10回ミスったらアウト??】パスコードを忘れてしまったiPhone・iPadの強制初期化方法と再設定について
      iPhone パスコード 解除
    • 【iPhone】無料英語学習アプリの決定版!Duolingoで毎日の空き時間を学習時間に変える
      Eduardo
    • 【iPhone】連絡先が重複して困ったらこのアプリ!その名もCleaner
      iPhone 連絡先 重複
    • 【ガラケー】auのGRATINAからiPhoneへ連絡先を移行する方法。誰でも出来る方法を模索してみたよ!
      まつ
    • iPhone・iPadが再起動を繰り返す「リンゴループ」になってしまった時の対処法まとめ
      iPhone 再起動 ループ
    • 【Excel】計算方法が勝手に手動になってしまった!その原因とは?
      ごとう
    • 【Windows】Outlookの連絡先データをGmailに引き継ぐ方法
      ヨシ
    • 【アイコス】iQOSにこびりついた頑固な汚れを安価で綺麗に落とす方法!
    • 【10回ミスったらアウト??】パスコードを忘れてしまったiPhone・iPadの強制初期化方法と再設定について
      もも
    • 【Youtube】初めての動画アップロード方法について。GoProで撮影した動画をYoutubeにアップするまでを説明するよ!
      ユーチューブ アップロード

    recommend

    recommend

    recommend

    recommend

    recommend

    recommend

    recommend

    recommend

    recommend

    recommend

    recommend

    links

    profile

    search this site.

    others

    mobile

    qrcode

    powered

    無料ブログ作成サービス JUGEM