CS表計算 1級 練習問題1(課題2がメイン)
[CS検定][表計算][1級]はじめに
練習問題はJAVADAにて配布している
練習問題(PDFファイル)と
提供データ(ZIPファイル)
をダウンロードして(皆さんが)持っている、練習問題を見ている
という体で書いていきます(さすがに問題文まるまる載せるのは無断転載とか著作権とかとかで抵触するかと)。
なので、(お手伝いしてもいいよ!という心の優しい方は)問題とデータを見ながらこちらを見ていただくと何言ってるのか、とか、何悩んでるのか、とか分かると思いますのでよろしくお願いします。
あと、私が書いてるのが必ずしも正解という訳ではありません。(これ重要)
でも関数出題区分はあります。
この出題区分の中でなくても使えるものを使ってやればいいのかとも思いますが、どうやったら"もっとスマートに"こなせるかのご意見やご提案を賜りたいので、ご協力の程よろしくお願いします。
[CS検定][表計算][1級][練習問題1][課題2]設問2 修正箇所の対象範囲 シート「統合」 M7:M106 「合否」
- 「得点」(L列)の値が70点以上(情SECの場合は85点以上)を「合格」
- それ以外は「不合格」
ということでIF関数が定石かと。ただ、IFの中身が少々自信がなく、私がひねり出した関数はこちら
=IF(AND(E7="情SEC",L7>=85),"合格",IF(AND(OR(E7="WP",E7="OD",E7="表",E7="DB"),L7>=70),"合格","不合格"))
E列には受験部門名(表=表計算部門、DB=データベース部門、OD=オフィスドキュメント部門、情SEC=情報セキュリティ部門)が入っています。
私がひねくり出したIF関数で言いたいことは
- 受験部門名(E7)内の文字列が情SECで点数(L7)が85以上なら合格
- 受験部門名(E7)内の文字列がWPまたは、ODまたは、表または、DBで点数(L7)が70以上なら合格
- それ以外は不合格
ということなんですけど、偽のIFの中身(IF(AND(OR(ここ)以下略
が自信がないというかスマートにならないものかと…
問題文は下から読むクセがあり、その通りに入力しているつもりです。
[CS検定][表計算][1級][練習問題1][課題2]設問5 対象範囲 シート「分析2」 G5:H17
- 最高得点(E列)と最低得点(F列)の点数を丸数字を使って簡易グラフにする
- 丸数字の中の数字は順位(①=1位、②=2位、…、⑬=13位)
- 丸数字の数は1つあたり10点。小数第一位を四捨五入した数=丸数字の数
- 最高得点の丸数字は降順(大きい順)に1位、2位、…にする
- 最低得点の丸数字は昇順(小さい順)に1位、2位、…にする
ということで、丸数字変換はさておき、きっとやってほしいことは
最高得点について
=REPT((RANKの数字を丸数字にする何か)RANK(E5,$E$5:$E$17,0)),ROUND(E5/10,0))
最低得点について
=REPT((RANKの数字を丸数字にする何か)RANK(F5,$F$5:$F$17,1)),ROUND(F5/10,0))
と思ったんです。
"RANKの数字を丸数字にする何か"がなければ、ランクの数字が(最高or最低)得点/10で小数第一位を四捨五入した数ぶん繰り返し表示できる。
で、Twitterでお友達から教えていただいた"RANKの数字を丸数字にする何か"に対する関数
CHAR(CODE("①")-1+RANK(E5,$E$5:$E$17,0)) (例:E5の最高得点の点数)
を教えてくれました。仕組みがちょっとよくわからないのですが(なんで-1してるの?とか+RANKって何なの?とか)
これで実際は何とかなった風なのですが、関数出題区分には入ってなかったんですよ。
なのでCHAR、CODEを使わない何かがあるのかもしれない…?
ので教えていただけると嬉しいです。
課題2はほとんどピボットテーブルでの集計とグラフ作りで関数は2つ3つくらいしか出題されません。
練習問題1の課題2はこの2つ(最低・最高を分ければ3つ)の関数が出てきました。