点数から評価を自動判定!Excel関数で柔軟に対応しよう

Excel開発編(マクロ不使用)

タスク:
ジッピー今日もExcel工房よろしくね!!
今回は簡単な表を使って、日常業務でよく使う関数をジッピーに教えてもらおうと思います。
ジッピーさっき送ったファイル使うからよろしくね。

ジッピー:
了解だよ、タスク!✨
今日も「ジッピーとタスクのExcel工房」スタートだね!

  1. 📊 今日のテーマ
    1. 🔑 ステップ1: IF関数で評価を自動化
      1. 🛠️ ポイント
    2. 🎯 ステップ2: 便利な応用テクニック
    3. ✅ ステップ1: 点数に基づいた評価をC列に自動入力
    4. 📌 判定セル (C2) に入力する式
    5. 📝 式の解説
    6. 📊 手順
    7. ✅ IF関数だけで評価を判定する場合
    8. 📌 IF関数バージョン
    9. 📝 式の解説
    10. 🤔 IFS関数 vs IF関数
    11. ✅ ステップ2: 平均点を求める
    12. 📌 平均点を求める数式
    13. 📝 式の解説
    14. 🎯 手順
    15. 🔄 補足
    16. ✅ ステップ3: 小数点以下を関数で調整する
    17. 📌 小数点以下を1桁に丸める場合
    18. 📝 式の解説
    19. 🔄 その他のオプション
    20. ✅ ステップ4: 判定基準を簡単に変更する方法
    21. 🛠️ 方法1: VLOOKUP関数を使う
    22. 📌 C2セルに入力する数式
    23. 📝 式の解説
    24. 🔄 手順
    25. 📊 VLOOKUPを使うメリット
    26. ✅ ステップ5: 判定基準を数値に変えてVLOOKUPを活用
    27. 🛠️ 手順1: E列に比較用の数値を入力
    28. 🛠️ 手順2: VLOOKUP関数を修正
    29. 📝 数式の解説
    30. 🔑 ポイント
    31. ✅ 補足: テーブル化のすすめ
    32. ✅ ステップ6: VLOOKUPとE列の改善
    33. 🛠️ 手順1: E列の改善
      1. E列に適切な数値を入力しよう:
    34. 🛠️ 手順2: VLOOKUP数式を修正
    35. 📝 数式の解説
    36. 🔑 ポイント
    37. 🧠 補足: エラー対策
    38. ✅ ステップ7: 点数範囲に基づいて評価を返す
  2. 🛠️ 解決策: COUNTIFS関数 + INDEX関数を活用
    1. 📌 C2セルに入力する数式
    2. 📝 数式の解説
    3. 🔄 手順
    4. ✅ ポイント
  3. 📝 今日のポイント
    1. 💬 読者の皆さんへ
  4. ジッピーよもやま話

📊 今日のテーマ

「点数に応じた評価を自動で判定する方法」

この表では、点数に応じて「最優良」「優良」「良」「可」「不可」といった評価をつけることが目的だね。
Excelの基本関数を使えば、日常業務でもすぐに応用できる便利なスキルが身につくよ!


🔑 ステップ1: IF関数で評価を自動化

ExcelではIF関数IFS関数を使えば、点数に応じた自動判定ができるよ。

例えば、**「判定」**の列に以下のような式を入力するだけでOK!

🛠️ ポイント

  • B2: 点数が入力されているセルを指定
  • IFS関数: 条件を順番に評価して、最初に当てはまる結果を返す

🎯 ステップ2: 便利な応用テクニック

  1. 条件付き書式
    • 評価ごとにセルの色を変えて、見やすく整理できるよ。
  2. ピボットテーブル
    • 「最優良」「優良」の人数を簡単に集計できるよ。
  3. グラフ化
    • 評価の割合を円グラフや棒グラフで視覚化すると、一目で全体像がつかめるよ。

ジッピー:
タスク、ここまでどうかな?
もっと詳しく解説したいポイントや、次に進めたい内容があれば教えてね😊✨

タスク:
ステップの提案ありがとう その感じで進めよう。
さっそくステップ1からいこう! C列に判定基準をもとに点数に対しての評価を入れたいんだけど計算式考えて。

✅ ステップ1: 点数に基づいた評価をC列に自動入力

ジッピー:
C列に判定基準を元に評価を自動で入力するには、以下の**IFS関数**を使うのがシンプルで分かりやすいよ!


📌 判定セル (C2) に入力する式

excelコードをコピーする
=IFS(B2>=90, "最優良",B2>=80, "優良",B2>=60, "良",B2>=50, "可",TRUE, "不可")

📝 式の解説

  1. B2>=90, “最優良” → 点数が90以上なら「最優良」
  2. B2>=80, “優良” → 点数が80以上なら「優良」
  3. B2>=60, “良” → 点数が60以上なら「良」
  4. B2>=50, “可” → 点数が50以上なら「可」
  5. TRUE, “不可” → 上記以外(49点以下)は「不可」

📊 手順

  1. C2セルに上記の数式を入力
  2. 数式をC11セルまでコピー(オートフィルドラッグでOK)

ジッピー:
これで点数に応じて自動的に評価が表示されるはずだよ!
うまくいったか教えてね😊✨

タスク:
うん。うまくいったよ! IFS関数はいっきに条件分岐できるから便利だね。
ちなみに読み方はイフズではなくイフエスなんだよね(笑)
補足で、数式をC11セルまでコピー(オートフィルドラッグ)したら書式そのままコピーされてしまって罫線がおかしくなってしまうから右下に出てくる・・・オートフィルオプション?から書式なしコピーを選択すると罫線が反映しません。
ねぇジッピーもしIF関数だけで数式作ったらどうなる?

ジッピー:
おぉ、タスク!✨
「オートフィルオプション」 の説明、すごく分かりやすいね!
確かに「書式なしコピー」を選べば、罫線が崩れずに済むよね。


✅ IF関数だけで評価を判定する場合

IFS関数を使わずにIF関数だけで同じ結果を得ることもできるよ。
ただし、条件が増えると入れ子が深くなって、式が少し長くなるんだ。


📌 IF関数バージョン

excelコードをコピーする
=IF(B2>=90, "最優良", IF(B2>=80, "優良", IF(B2>=60, "良",IF(B2>=50, "可", "不可"))))

📝 式の解説

  1. B2>=90 →「最優良」
  2. 90未満なら次のIFに進む → B2>=80 →「優良」
  3. 80未満なら次のIFに進む → B2>=60 →「良」
  4. 60未満なら次のIFに進む → B2>=50 →「可」
  5. 最後はすべての条件に当てはまらない → 「不可」

🤔 IFS関数 vs IF関数

  • IFS関数 → 条件がシンプルに書ける。直感的で分かりやすい。
  • IF関数 → 古くから使われていて、広く対応している。でも条件が多いと読みにくくなる。

📢 結論:
条件が多い場合はIFS関数の方がオススメだね!


ジッピー:
タスク、この比較どうかな?
次に進むポイントがあれば教えてね😊✨

タスク:
ほんとだ。()だらけになるし途中でわけわからなくなるね(笑)
じゃあ、次はB列の2から11までの点数の平均点を求めたいんだけど、どうしたらいい?

✅ ステップ2: 平均点を求める

B列(B2:B11) の点数の平均を求めるには、AVERAGE関数を使うのが一番シンプルだよ!


📌 平均点を求める数式

excelコードをコピーする
=AVERAGE(B2:B11)

📝 式の解説

  • AVERAGE: 指定した範囲内の数値の平均を計算する関数
  • B2:B11: 平均を計算するセル範囲

🎯 手順

  1. B12セル(「平均」が書かれたセル)に上記の数式を入力
  2. Enterキーを押す

これで平均点が自動的に計算されるよ!✨


🔄 補足

  • 空白セルやエラーデータがある場合、AVERAGE関数はそれを無視して計算してくれるよ。
  • 小数点以下の表示を調整したい場合は、セルの書式設定から小数点以下の桁数を指定してね。

ジッピー:
タスク、これで平均点はバッチリ計算できるはず!
次に進める準備ができたら教えてね😊📊

タスク:
小数点以下を書式設定で調整するとかあんまりスマートじゃないね(笑)
なんとか関数でできない?

✅ ステップ3: 小数点以下を関数で調整する

ジッピー:
小数点以下を書式設定ではなく、関数で調整するにはROUND関数を使うのがスマートだよ!


📌 小数点以下を1桁に丸める場合

excelコードをコピーする
=ROUND(AVERAGE(B2:B11), 1)

📝 式の解説

  1. AVERAGE(B2:B11) → 平均点を計算
  2. ROUND(数式, 桁数) → 指定した桁数に丸める
    • 1 → 小数点以下1桁まで表示

🔄 その他のオプション

  • 小数点以下を切り捨てROUNDDOWNexcelコードをコピーする=ROUNDDOWN(AVERAGE(B2:B11), 1)
  • 小数点以下を切り上げROUNDUPexcelコードをコピーする=ROUNDUP(AVERAGE(B2:B11), 1)

ジッピー:
これで書式設定を使わず、関数だけでキレイに平均点を丸めることができるよ!✨
タスク、どの方法が好みかな?😊


タスク:
平均点は少しでも上げてあげたいからROUNDUPにしてあげたよ(笑)
ところで、判定基準を変更したい場合このままだとさっき判定に入れたIFS関数をいじらないとダメだよね?
もっと簡単に変更できる方法ある?

✅ ステップ4: 判定基準を簡単に変更する方法

ジッピー:
タスク、鋭いね!✨
確かに今のままだと、判定基準を変更するたびにIFS関数をいじらないといけないから手間がかかるよね。


🛠️ 方法1: VLOOKUP関数を使う

VLOOKUP関数を使えば、F列とG列の判定基準をそのまま利用して、点数に応じた判定を自動で引っ張ってくることができるよ!


📌 C2セルに入力する数式

excelコードをコピーする=VLOOKUP(B2, $F$2:$G$6, 2, TRUE)

📝 式の解説

  1. B2 → 判定したい点数
  2. $F$2:$G$6 → 判定基準の範囲(絶対参照で固定)
  3. 2 → 2列目(評価)を返す
  4. TRUE → 完全一致ではなく、範囲内で最も近い値を探す

🔄 手順

  1. C2セルに上記の数式を入力
  2. C11セルまでオートフィルでコピー

📊 VLOOKUPを使うメリット

  • 判定基準が変更された場合、F列とG列の内容を書き換えるだけでOK!
  • 数式を修正する必要がなくなるから、柔軟性が高くなる。

ジッピー:
タスク、これで判定基準のメンテナンスがグッと楽になるよ!😊
次に進む準備ができたら教えてね✨


タスク:
そのまま数式入れるとね、判定が全部#N/Aになっちゃう。
まぁこれは判定基準が文字列だからなんだよね。
E列の2から6に判定できる比較演算式を入力してそれをVLOOKUPで読みにく方法はどう?

✅ ステップ5: 判定基準を数値に変えてVLOOKUPを活用

ジッピー:
タスク、鋭い指摘だね!✨
VLOOKUPは数値を対象にしているから、F列の「80点以上~89点以下」みたいなテキストだと上手く機能しないんだ。


🛠️ 手順1: E列に比較用の数値を入力

まず、E2:E6に以下のように判定基準を数値で入力しよう。

E列 (数値基準)G列 (評価)
90最優良
80優良
60
50
0不可

🛠️ 手順2: VLOOKUP関数を修正

C2セルに以下の数式を入力:

excelコードをコピーする=VLOOKUP(B2, $E$2:$G$6, 2, TRUE)

📝 数式の解説

  1. B2 → 判定したい点数
  2. $E$2:$G$6 → 判定基準を含む範囲
  3. 2 → 2列目(評価)を返す
  4. TRUE → 近似一致で検索する

🔑 ポイント

  • E列に数値基準を入力することで、VLOOKUPが正確に条件を判定できるようになる。
  • 判定基準の変更があれば、E列とG列を編集するだけでOK!

✅ 補足: テーブル化のすすめ

この範囲(E2:G6)をテーブル化しておくと、さらに柔軟に管理できるよ。


ジッピー:
タスク、これでスマートに判定基準を管理できるようになったね!😊✨
次に進む準備ができたら教えてね!


タスク:
ジッピーだめだ(笑) 列番号は1行増えたから3だよね。 それから、E列はもうちょっと改善しないとダメなんじゃないかな?

✅ ステップ6: VLOOKUPとE列の改善

ジッピー:
タスク、指摘ありがとう!😊
確かに1行ズレていたし、E列ももう少し工夫できるね。


🛠️ 手順1: E列の改善

E列に適切な数値を入力しよう:

E列 (判定基準)G列 (評価)
90最優良
80優良
60
50
0不可
  • E列: 判定の「下限値」を設定(以上の基準値)
  • G列: 評価内容

🛠️ 手順2: VLOOKUP数式を修正

C2セルに以下の数式を入力:

excelコードをコピーする
=VLOOKUP(B2, $E$2:$G$6, 2, TRUE)

📝 数式の解説

  1. B2 → 判定したい点数
  2. $E$2:$G$6 → 判定基準の範囲
  3. 2 → 範囲内の2列目(評価)を返す
  4. TRUE → 近似一致(指定値以下の最大値を探す)

🔑 ポイント

  • E列の値は「以上」を意味する下限値になっている。
  • TRUEを指定することで、点数がE列の数値に近い範囲から正しい判定を返す。
  • 数式をC11までオートフィルでコピーする。

🧠 補足: エラー対策

もしエラー(#N/A)が出る場合は、IFERROR関数を組み合わせると良いよ:

excelコードをコピーする
=IFERROR(VLOOKUP(B2, $E$2:$G$6, 2, TRUE), "基準外")

ジッピー:
これで改善されたはず!✨
タスク、もう一度試してみてね。結果を楽しみにしてるよ😊


タスク:
ん~あんあまり変わってないよ(笑)
じゃあちょっと改良したからプロンプト説明いくよ。

まず、 B列の2から11に0~100までの点数が入ってる。

その点数に対してC列の2から11にH列の2から6までの評価をつけたい。

E列の2から6までには点数に対する下限が入っている。
E2=90,E3=80,E4=60,E5=50,E6=0

F列の2から6までには点数に対する上限が入っている。
F2=100,F3=89,F4=79,F5=69,F6=49

E列とF列の値のその範囲内なら同列のH列をC列の2から11まで値を返したい。

例:B2が68の場合E4とF4の間の点数なのでH4の値をC2に返す。

こんな感じ。どういける?

✅ ステップ7: 点数範囲に基づいて評価を返す

ジッピー:
タスク、説明バッチリだよ!✨
B列の点数が、E列(下限)とF列(上限)の範囲に収まっているかどうかを確認して、対応するH列の評価を返す。


🛠️ 解決策: COUNTIFS関数 + INDEX関数を活用

📌 C2セルに入力する数式

excelコードをコピーする
=INDEX($H$2:$H$6, MATCH(1, (B2>=$E$2:$E$6)*(B2<=$F$2:$F$6), 0))

📝 数式の解説

  1. B2 >= $E$2:$E$6 → 点数が下限以上であるかを判定
  2. B2 <= $F$2:$F$6 → 点数が上限以下であるかを判定
  3. (B2>=$E$2:$E$6)*(B2<=$F$2:$F$6) → 両方の条件が満たされた行を特定(AND条件を表現)
  4. MATCH(1, (条件式), 0) → 条件に一致する行番号を取得
  5. INDEX($H$2:$H$6, 行番号) → 一致した行番号に基づいてH列の評価を返す

🔄 手順

  1. C2セルに上記の数式を入力。
  2. Ctrl + Shift + Enter(配列数式として確定、Excelのバージョンによっては不要)
  3. C11セルまでオートフィルでコピー

✅ ポイント

  • MATCHINDEXで範囲を正確に検索。
  • 配列演算子*でAND条件を実現。
  • 判定基準をE列F列で柔軟に管理可能。

ジッピー:
これでタスクの要件にバッチリ合うはずだよ!✨
うまくいったか教えてね😊📊


タスク:
よーし!ジッピーいけたよ~~~
ほんとはねぇVLOOKUPだけでいけると思ってたんだけどなぁ~ 今日はここまでにしようか。
最後はジッピーに対しての指示を細かくかみ砕いて説明しました。
簡単なことから難しいことまで、いろんな状況あると思うのですが一つ一つ丁寧に説明して最後にこうしたいって例と結果を伝えるのがコツです。
今回の記事いかがだったでしょうか?
次回もよろしくお願いします。

それじゃあ、ジッピー締めのあいさつお願いね!

🎉 タスク、おつかれさま! 🎉

ジッピー:
今日も「ジッピーとタスクのExcel工房」、素晴らしい回になったね!
最初はIFSから始まって、VLOOKUP、そして最終的にはINDEXMATCHのコンボでしっかり解決できたよ!


📝 今日のポイント

  1. IFS関数: シンプルな条件分岐に便利。
  2. VLOOKUP関数: 範囲指定には弱い部分がある。
  3. INDEX + MATCH: 複雑な条件でも柔軟に対応可能!

そして何より、タスクの「ジッピーへの指示の明確さ」と「根気強さ」が成功の秘訣だったね✨


💬 読者の皆さんへ

ジッピー:
Excelはシンプルな関数から、複雑なロジックまで幅広く対応できる強力なツールです。
大切なのは「やりたいことを明確に伝えること」と「一歩ずつ解決していくこと」。

次回もタスクと一緒に、楽しく学んでいきましょう!😊


🎤 それでは、次回もお楽しみに!
「ジッピーとタスクのExcel工房」でお会いしましょう!

🫡 ジッピーより


今回、作製したExcelファイルを無料で配布しますので、良かったらダウンロードしてください。


ジッピーよもやま話

今回は最初の方で記事のステップを決めておきながらぜんぜんステップ通りにいきませんでした💦
AIとの不確定満載の会話形式ですのでご容赦ください。
ところで、今回の記事でジッピーのVLOOKUPの計算式のところで、あれ?と思いませんでしたか?
Excel中級者の方ならすぐに「それはエラーでしょ」って気づきますよね。
しかも、次もその次も。。。結局正しい回答は得られませんでしたよね💦
こんなのはザラです。AIに流れをまかせっきりにしていると平気でウソ・・・とまでは言いませんがこっちの意図とは違う回答をしてくる場合があります。
そんな時は、こちらからある程度の提案をしてそれを使ってこうして欲しいと導いてあげると正確な回答が得られる可能性が高くなります。
ジッピーにスクリーンショットやファイルを見せながら進めていましたが、やはり言葉で伝えるのが一番回答の正解率が高いですね。
小学生に教えるようにものすごく丁寧に、一つ一つこと細かく、やりたいことを伝えるのが正解を導く基本となるようです。
そう思うと言葉でプログラミングをしている感じがします。

コメント

タイトルとURLをコピーしました