- ベストアンサー
エクセルで得点に応じて、表示するコメントを変える方法
マイクロソフトエクセルで、以下のようなことをする場合の数式の組み方を教えてください。 合計得点を参照して、合格点以上であれば、「合格です」と横に表示し、合計得点以下ならば、「合格まであと○○点です」と横に表示するという具合に得点に応じて表示コメントを変えたい。 マクロの使い方はまだ分からないのですが、これはマクロを使わないとできないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
マクロなど不要です。関数で普通に出来ますよ。 A1セルに判定する点が入っているとします。 300点以上が合格だとします。 B1にそのコメントを表示するとして、B1セルに以下です。 =IF(A1>=300,"合格です","合格まで"& 300-A1 & "点です") 上記式の概略 ※IF関数で条件によって処理 ※不合格の時は、足りない点数を計算し(「300-A1」の部分)、& で連結です。
その他の回答 (2)
#2です。 > この方法の利点は、B1の中身が合格点との差になっているので、 > 別のセルで、合格者や不合格者の人数をカウントできたりする点です。 上記はA1の点数をチェックしてもできるので、意味なかったですね。
お礼
ありがとうございます。 読みながら、「へぇ~!」と目からうろこの思いでした。 奥が深いですね。 アドバイスをいただいたように関数を勉強して関数でいろいろなことを考えていきたいと思います。
もう、答えは出ていますが、今後のこととして... ちょっと解法がわからないと、何でもVBAに走る癖をつけないことをお勧します。 できるだけ、ワークシート関数でできないか考えてみることです。 VBAを使うにしても、できるだけユーザー定義関数の形にして、これを拡張タイプのワークシート関数として使うべきです。 老婆心ながら... ちなみに、トリッキーですがこんなこともできます。 B1に =IF(A1>0,A1-300,"") と入力しておきます。 B1の表示書式に、 「"合格です。";"合格まで、あと"#"点です。";"合格です。";」 と設定しても同じ効果が得られます。 この方法の利点は、B1の中身が合格点との差になっているので、 別のセルで、合格者や不合格者の人数をカウントできたりする点です。 ご参考まで。。。
お礼
早速のアドバイスありがとうございました。 かなり行き詰まっていたので、とても助かりました。 エクセルって覚えると楽しいですね。 これからも勉強していきます。 また何かあったときは、アドバイスお願いします。