[[20070726164732]] 『IF関数』(よよよ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『IF関数』(よよよ)
 初めて書き込みます。下記の関数ですが、ORやNやISNAを含んでいてよく理解できません。
なにのときなにを返す、というように教えていただけないでしょうか。よろしくお願いいたします。

=+IF(OR(N(Sheet1!C5),Sheet1C5=""),"",IF(OR(ISNA(Sheet1!C5),Sheet1!C5=""),A2,IF(A2="",Sheet1!D4,A2)))


 =+IF(OR(N(Sheet1!C5),Sheet1C5=""),"",IF(OR(ISNA(Sheet1!C5),Sheet1!C5=""),A2,IF(A2="",Sheet1!D4,A2))) 

 Sheet1!C5が、「数値」又は「空白」ならば「空白を表示」

  ↑に、当てはまらない場合
  Sheet1!C5が、「数値」又は「空白」ならば「A2を表示」

   ↑に、当てはまらない場合
   A2が、「空白」ならば、「Sheet1!D4を表示」

    ↑当てはまらない場合、「A2を表示」

 IF(OR(N(Sheet1!C5),Sheet1C5=""),"",IF(OR(ISNA(Sheet1!C5),Sheet1!C5=""),A2
 この部分は、ダブっている気がしますが…
 「A2」「空白」どちらにしたいのでしょう?

 (Ohagi)

 ネストが多い数式は、下記のように表示するとわかりやすいかもしれません。
(純丸)(o^-')b
 
 =+IF(OR(N(Sheet1!C5),Sheet1C5=""),		  
         "",
         IF(OR(ISNA(Sheet1!C5),Sheet1!C5=""),
               A2,
               IF(A2="",
                     Sheet1!D4,
                     A2))) 

 ROMと思っていたのですが、ひとことだけコメントさせていただきます。
 通常は、=ISNA()は、数式の一番外側で判断して処理をよけますね。
 特別な配慮なくエラー値のセルを参照しますと、その段階でエラーになってしまいます。 (6UP)

 失礼ながら、この式はマトモではありません。

 「Sheet1!C5」が「#N/Aエラー」かどうかチェックしている部分がありますよね。
 しかし、 実際にC5が「#N/Aエラー」なら無条件で「#N/Aエラー」が返りますよ。

 その他にも問題があります。

 マトモな式なら、「何の時、何を返す」と言えますが、これは出来ません。

 式を作った人に、条件の優先順位を訊いて、式がそれに合っていないことを
 伝える必要があります。

 (半平太)

よよよです。みなさまアドバイスありがとうございます。
みなさんのコメント踏まえて、練り直しに入りたいと
思います。とりいそぎはお礼まで。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.