- ベストアンサー
ISERROR関数?
こんにちは。 A列に100,200,300,400,500と数字がベタ打ちで表示されています。 B列には数式で表示させた数字、3100,3500,7800,9002,9900が表示されています。 いまC列に、B列の値が9000以上ならばA列の値を表示させようとしています。そうでなければ空欄にします。 (この例ならば、9002に対する400と9900に対する500が表示されることになります。) この場合の関数は=IF(ISERROR(B1>=9000),"",A1) では間違いなのでしょうか? 現状では、B列が3100であろうと9900であろうと、A列の値が表示されてしまいます。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
> この場合の関数は=IF(ISERROR(B1>=9000),"",A1) > では間違いなのでしょうか? 間違いです。 B列の値が何であれ、結果は「TRUE」または「FALSE」になり、「エラー」にはなりません。 (「FALSE」はエラーではありません。) この場合の関数は素直に、 =IF(B1>=9000,A1,"") でいいでしょう。
その他の回答 (3)
- zap35
- ベストアンサー率44% (1383/3079)
文字列なら一旦数値に変換しなくてはなりません =IF(VALUE(B1)>=9000,"",A1) もしA列の値も文字列で、数値に変換するなら =IF(VALUE(B1)>=9000,"",VALUE(A1))
お礼
ありがとうございます!! 非常に助かりました。
- merlionXX
- ベストアンサー率48% (1930/4007)
=IF(B1>=9000,A1,"") だけでいいですね。 ためしに =B1>=9000 といれ見てください。こたえはTRUEかFALSEで、エラーにはなりません。
お礼
早速のご回答ありがとうございました。 たすかりました!!
- yama_x
- ベストアンサー率20% (188/940)
iserror はあくまで計算式の結果がエラーとなる場合にしか 有効になりません。 たとえば0で割る式だったり、lookup系の関数で値が見つからなかったりで、 DIV0 や N/A などエラーメッセージが返ってくるかどうかを 判定するものです。 今回の質問でやりたいことはISERRORを使うまでもなく、ただの IFだけでOKです。 =IF(B1>=9000,"",A1) が正解です。
お礼
>iserror はあくまで計算式の結果がエラーとなる場合にしか >有効になりません。 この点を理解しておりませんでした。 ありがとうございました!!
お礼
非常に助かりました。 ありがとうございます!!
補足
早速のご解答ありがとうございます。 試してみたのですが、うまく行きませんでした。 というのも、 実はB列に表示されているものは、right関数によって導かれた数字なのです。 どうもright関数で導かれた数字は「文字列」として認識されてしまうようで、数値として認識されていないようなのです。 C列に=IF(B1>=9000,A1,"")といれてみると、B列が3000でも9900でも数字が表示されてしまいます。。。 何か、原因が他にもあるのでしょうか…複数の質問になってしまい、申し訳ありません。