スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | | CM(-)TB(-) |  TOP△

Excelの小技(2)得点に合った評価を表示する

Excelの小技(1)」の続編。

前回に続いて、掛け値なしの「小技」。
ここまで小手調べ技だと、忘れることもなく、調べ直すまでもない。だとすれば、書いておく意味もあまりないのだが、あまりにも一般的でないものもどうかと思って書くことにした。

サンプル1

さて、こんな表に得点は入力したけれども、それを評価に直さなければならない、ということが起こった場合。

まず、90点以上に「S」を付けたい。その場合にはif式を使う。

=IF(B2>90, "S","×")


「B2>90」という条件に合う場合は「S」という文字を、合わない場合は「×」という文字を入れる、という式である。「"」で囲っているのは、数値ではなく文字だということ。「"」がないとExcelが理解してくれなくてエラーになるので必須である。
この式を「C2」セルに入力して、それを「C11」セルまでドラッグしてコピーする。

サンプル2

とりあえず出来たように見える。が、良く見ると、中村八郎君は90点なのに「×」が付いてしまっている。これは「B2>90」が「B2が90より大きい」だからである。「B2>89」にすれば、この例のように整数しかない場合には問題ないが、小数点以下がある場合、得点が89.1点の場合にも「S」になってしまう難点がある。かと言って、「B2>89.99999999…」などとするのも如何なものか。
そこで、

=IF(B2>=90, "S","×")


というふうに、「B2」と「90」を「>=」で結んでやる。すると、「B2が90より大きい」または「B2が90と等しい」、つまり、「B2が90以上」ということになる。

サンプル3

これで中村八郎君も、無事に良い評価を獲得することができた。が、これでは「S」評価以外の人は落第になってしまう。同時に、80以上を「A」に、70以上を「B」に、60以上を「C」にしたい。

最も簡単に思いつくのは、上に倣って「B2が80以上なら『A』」「B2が70以上なら『B』」「B2が60以上なら『C』」という式、

=IF(B2>=80, "A","×")

=IF(B2>=70, "B","×")

=IF(B2>=60, "C","×")


を、横のセルに追加して行くやり方である。

サンプル4

一応はできた。が、これでは、伊藤六郎君が落第なのは判るが、後は誰がどんな評価なのか、一見して判りにくい。こんなことならExcelを使う意味がないから、「評価」欄に、「評価2」~「評価4」欄の分まで、すべて集約したい。

こういう場合には、if式を入子にするのが有効である。
最初に使った「=IF(B2>=90, "S","×")」という式は、判りやすく言えば「B2」が90以上という条件(TRUE)があって、それに合致しない場合(FALSE)は「×」を入れる、ということである。
この式は、「B2>=90」が条件で、「TRUE」が「S」、「FALSE」が「×」である。この「FALSE」の部分を「×」ではなく『80以上は「A」・未満は「×」』というif式(IF(B2>=80, "A","×")に変えてやれば良いのである。

=IF(B2>=90, "S",(IF(B2>=80, "A","×")))


「B2>=90」という条件に合致しない場合、「IF(B2>=80, "A","×"」の計算をせよ、ということである。
更に、この「×」に『70以上は「B」・未満は「×」』の式を入れ、更に更に、その「×」に『60以上は「C」・未満は「×」』を順々に入子にして行く。

=IF(B2>=90, "S",(IF(B2>=80, "A",(IF(B2>=70, "B","×")))))

=IF(B2>=90, "S",(IF(B2>=80, "A",(IF(B2>=70, "B",(IF(B2>=60, "C","×")))))))


これをやっていると、しばしば閉じ括弧の数を間違えるのだが、その程度ならExcelが勝手に修正してくれるから問題ない。
最後の式を「C2」セル以下に入れると、結果、こんな表が出来上る。

サンプル5

「A」を付ける条件に「80以上」のほかに「90未満」という条件を設けなくても良いのか、「B」を付ける条件に…(以下同)と思う人がいるかもしれないが、そして、それ自体はor式を使えばできるのだが、この場合にはそこまでする必要がない。最初に「90以上」なら「S」を入れるとしているので、「A」を入れる式は「FALSE」すなわち90未満の数だけが対象になっている。更に「B」を入れる式は「FALSE」すなわち80未満の数だけが対象となっており…(以下同)というわけである。

同じ結果を得るためのもっとシンプルな式はきっとあるのだろうが、素人の僕が自力で作るものとしては、このくらいのものが限界だし、かつ、このくらいのもので十分である。

コメントの投稿











管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://hoshinahouse.blog101.fc2.com/tb.php/690-cb3da0f0










上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。