アフィリエイト広告を利用しています
G-QVESCNWRVH

2021年05月07日

Excel : 便利な関数 If関数 (Part 3 - 条件式について(4))

Excel 便利な IF 関数 条件式について(3).jpg

●今回は?

IF関数について、3回、条件式の詳細について一回、お話しました。
IF関数 第一回
IF関数 第二回
IF関数 第三回
IF関数 条件式第一回
IF関数 条件式第二回

前回は、IF関数はこのように使うんですよーって、例題を作ったところで力尽きました(すみません

●お題と言えば

期末テスト成績表サンプル.jpg
このような表があって、
・各生徒の5教科のテストの点数が入力されています。
・その右側に記号欄があります。この記号欄に
 ⇒各教科でトップの点数には★印
 ⇒男子、女子ごとに、平均点を超えた点数には〇印
を入力します。

入力した結果は次のようになります。
期末テスト成績表サンプル2.jpg

皆さんと一緒にすることは、この記号欄に、IF関数を用いて実現するってことですね
では、どのような If関数式にすればよいでしょうか?

●条件の整理

まず、条件とその条件が満たされた時に入力する文字(ここでは記号と言わずに文字とあえていいます)を整理します。

@得点が最高点の場合  ⇒  ★
A男子の場合、得点が男子平均点より大きい場合  ⇒ 〇
B男子の場合、得点が男子平均点以下の場合    ⇒ ヌル文字列
C女子の場合、得点が女子平均点より大きい場合  ⇒ 〇
D女子の場合、得点が女子平均点以下の場合    ⇒ ヌル文字列

となります。
注意していただきたいのは、入力する文字(列)は3種類あると言う事です。
つまり、『★』と『〇』と『』です。

さて、場合分けをしてみましょう
得点が最高点である:Yes⇒『★』を返す
         :No⇒男子である:Yes⇒男子平均点より大きい:Yes⇒『〇』を返す
                                  No⇒『』を返す
                  :No⇒女子平均点より大きい:Yes⇒『〇』を返す
                                 No⇒『』を返す
というような感じですね。

●条件をいよいよExcelライクに

これを少しだけ Excelライクに記入してみましょう
まず、得点が最高点であるかどうかの判定は
<生徒のある教科の得点 = その教科の最高点>で判定できますね。
 例えば、国語ならば、各生徒の国語の点数は、セル [C2]から[C27]に格納されています。
 そして、最高点はというと、この[C2]から[C27]の一番大きな数字になりますね。
 あるセル範囲の最高値(最大値)を得るためには、MAX関数を使用します。
 つまり、最高点は、 MAX(C2:C27)で取得できます。

 各生徒の点数は、Aくんのは C2に格納されています。
 すると、Aくんの点数が最高点かどうかは、

 C2 = MAX(C2:C27)
 という条件式を判定すればよいことになります。

 サンプルを見ると、Aくんの国語の点数は75点、最高点はJくんの100点となっています。
 なので、 C2 = MAX(C2:C27) は、75 = 100 となり、これは偽です。

 よって、Aくんは残念ながら★ではありませんでした。

 すると、次にAくんは男子となっています。
 Aくんの国語の成績 75 点は、男子の国語の平均点より高いでしょうか?
 男子の国語の平均点は、サンプルの表では C28 に入力されています。
 C28に表示されている数字は、77.4 点です。

 よって、Aくんの国語の成績 > 男子の国語の平均点 という条件式は
 75 > 77.4 となり、これは偽です。

 Aくん、惜しい! もう少しで〇だったのに

 ここで、出てきた、条件式を使って If関数を完成させてみましょう。

 まず、最高点かどうかから

 IF(C2 = MAX(C2:C27), "★", <最高点でなかった場合の処理をここに記入する>)

 となりますね。

●次は赤字の部分を記述

惜しくも最高点でなかった場合はというと・・・?
・男子の場合は、男子の平均点より得点が高いか?
・女子の場合は、女子の平均点より得点が高いか?
ですね。

あれ?ここでも条件が複合されてますね。
まず、男子か女子か? です。

よって、If(男子?, <得点が男子の平均点より大きい場合の処理>、<得点が女子の平均点より大きい場合の処理>)となります。
ここで、大前提として、人は誰でも男子か女子であるとしていることは言うまでもありません。

これをExcelの If関数で書き直すと(最初の男子か女子かってところだけです)

 IF(B2 = "男子",<得点が男子の平均点より大きい場合の処理>、<得点が女子の平均点より大きい場合の処理>)です。

 では、この得点が男子の平均点より大きい場合の処理の部分について記述してみましょう。
 得点は、C2ですね。 男子の平均点は C28 です。
 すると、 条件式は C2 > C28 です。 簡単ですね。
 そして、条件を満たしたら、"〇"ですよね。
 とすると、IF(C2 > C28, "〇","")

 得点が女子の平均点より大きい場合の処理はというと、同じように
 C2 > C29 ですね。
 すなわち、 IF(C2 > C29, "〇","")

 いよいよ、置き換えてみましょう。

 IF(B2 = "男子", IF(C2 > C28, "〇","") , IF(C2 > C29, "〇",""))
 です。

 どうです? できましたよー

 この式は、<最高点でなかった場合の処理をここに記入する>だったので、

 IF(C2 = MAX(C2:C27), "★", <最高点でなかった場合の処理をここに記入する>)を整理すると

 IF(C2 = MAX(C2:C27), "★", IF(B2 = "男子", IF(C2 > C28, "〇","") , IF(C2 > C29, "〇","")))

 完成です。

 この式を D2 セルに入力すると、

 何も表示されません
 まぁ、それもそのはず、Aくんは国語の成績が平均以下だったので

 同じように D3 から D27 まで、入力します。
 そして、ほかの4教科にも同じように入力します。

 すると・・・・
 期末テスト成績表サンプル2.jpg
 こうなりますよね。

 実際に、D2 セルに入力されている式をお見せします。
Excel Tips 20210507-1.jpg

 いかがですか?

 えっ? さっきのとちょっと違うって?

 それにきづいたあなたは素晴らしいです。
 気づかなかったあなたは、普通です
 では、その差は何かというのを 次回お話ししますね。
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント: 必須項目

この記事へのトラックバックURL
https://fanblogs.jp/tb/10708392

この記事へのトラックバック
ファン
検索
<< 2024年11月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
プロフィール
Y.Taki@AS400さんの画像
Y.Taki@AS400
IBM AS/400で稼働するシステムの開発・追加を担当して30年以上になります。使えば使うほどこの AS/400 が好きになりました。 こんなSEがいろいろな視点から様々な業務などについて語ります。
プロフィール