- ベストアンサー
EXCEL2013で数値範囲で判定する方法
- EXCEL2013で2つの数値を比べ範囲を指定しながら、○ △ ×で判定する方法について初心者向けに解説します。
- 例えば、速度を測定し、1回目の数値の±1.00秒の範囲なら「△」、1回目の数値の「1回目+1.01」なら「○」、そして「1回目-1.01」なら「×」というように判定します。
- 長いIF関数を使用する方法もありますが、短い関数を使用する方法についても紹介します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
IF関数で範囲を指定する場合は、分類範囲を大きい順または小さい順に並べて、その順に判定するのが簡潔な数式になります。 =IF(C3="","",IF(D3-C3>1,"○",IF(D3-C3>=-1,"△","×"))) すなわち、D3-C3の値が1より大きいなら○、それ以外で-1以上なら△、それ以外なら×という数式にします。
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
次の数式で論理式に誤りがあります。 IF(C3-1.0<=D3<=C3+1.0,"△",IF(D3<C3-1.0,"×","")) 論理式のC3-1.0<=D3<=C3+1.0は(C3-1.0<=D3)<=C3+1.0と言う演算が行われ、論理値のTRUEまたはFALSEが返されますのでTRUEは数値に直すと1であり、FALSEは0なので元のD3と比較しているつもりが別の値と比較していることになります。 従って、予測と違う結果になることがあります。 C3-1.0<=D3<=C3+1.0 ↓ AND(<C3-1.0<=D3,D3<=C3+1.0)
お礼
大変丁寧に回答いただきありがとうございます。 数学の不等式のつもりで作ってしまっていました。 まだまだ分かっていないことだらけで、とても勉強になりました。 式の立て方や用語について、見直していきます。 また、質問させていただくことがあると思いますが、よろしくお願いします。
=IF(COUNTIF(C3:D3,">0")=2,IF(AND(D3-C3<=1,D3-C3>=-1),"△",IF(D3-C3>1,"○","×")),"") C3、D3両方共に0以上の数値が入力されているとことをcountif()で確認した関数です。 ANDが必要なだけのようですね。ANDの他にはorもあるので覚えましょう。
お礼
早々に回答いただき、ありがとうございます。 COUNTIF AND or というものがあるのですね。 用語について、また勉強しなおします。 また、質問させていただくと思いますがよろしくお願いいたします。
- shintaro-2
- ベストアンサー率36% (2266/6245)
>IF(D3>0,IF(D3>C3+1.0,"○",IF(C3-1.0<=D3<=C3+1.0,"△",IF(D3<C3-1.0,"×",""))),"") >としたのですが長くなりすぎたのかダメでした。 長いからではなく、 最初のIFと、2つ目のIF条件が成立しない場合の処理が定義されていません。 3つ目のIFの判定条件は IF(AND(C3-1<=D3,D3<=C3+1),"△",***以降省略) と書くのでしょう。 関数のネストは2003まででも7つですし、2007以降は64ですので、この程度ならOKです。
お礼
早々に回答いただきありがとうございます。 数学の不等式のつもりで作ってしまっていました。 初心者のくせにちょっと難しい表の処理を使用と悪戦苦闘しています。 また、質問させていただくことがあると思いますが、よろしくお願いします。
お礼
早々に回答いただき、ありがとうございます。 このような式の立て方もあるのですね。目から鱗です。 いろいろな発想ができるよう、勉強していきます。 また、質問させていただくと思いますが、よろしくお願いいたします。 皆様、丁寧に回答いただき、とても勉強になりましたが、この発想に大変 感動したので、ベストアンサーとさせていただきます。 ありがとうございました。