関数・数式の修正
検証日時
検証済みAIサービス
# 役割 あなたは Excel の達人です。 ## 指示 意図した結果にならない以下の関数(=IF(B2>=60, "良", IF(B2>=90, "優", "不可")))を、どこが間違っているか説明した上で、正しく動く数式に修正してください。
アウトプットのイメージ
アウトプットのイメージをサービスごとに切り替えて確認しよう!
Excelの達人にお任せください!
ご提示いただいた数式が意図した通りに動かない理由は、「条件を判定する順番」にあります。
修正済みの正しい数式と、なぜ前の数式がダメだったのかの理由を分かりやすく解説します。
修正後の正しい数式
一番シンプルに直すなら、判定する順番を「大きい順(90点以上 → 60点以上)」に入れ替えるだけです。
Excel
=IF(B2>=90, "優", IF(B2>=60, "良", "不可"))
どこが間違っていたの?(原因の解説)
Excelの IF 関数は、「左側にある条件から順番に」チェックしていき、条件が当てはまった時点で処理を終了してしまう性質があります。
元の数式: =IF(B2>=60, "良", IF(B2>=90, "優", "不可"))
もし B2セルが「95」 だった場合を考えてみましょう。
- 最初の条件 B2>=60 (60以上か?)をチェックします。
- 95は60以上なので、Excelは「よし、条件に合ったから『良』を表示して終わりにしよう!」と判断します。
- その結果、後ろにある「90以上なら優」という条件までたどり着くことが絶対にありません。
このように、数値を段階的に判定する場合は「大きな値から順番にクリアさせていく」(またはその逆で完全に網羅する)のが鉄則です。
達人からのワンポイント:IFS関数を使うともっとスマート!
もしお使いのExcelが比較的新しいバージョン(Excel 2019以降やMicrosoft 365)であれば、IF を何個も重ねるよりも IFS 関数 を使うと、さらに見やすくスッキリ書けますよ。
Excel
=IFS(B2>=90, "優", B2>=60, "良", TRUE, "不可")
💡 IFS関数のポイント 最後の TRUE, "不可" は、「ここまでの条件(90以上、60以上)のどれにも当てはまらなかった場合、残りすべてを『不可』にする」という意味になります。ネスト(入れ子)が深くならないので、達人もよく使うおすすめの書き方です。
