「得点タワー」の作り方

得点をタワー状に表示する方法を解説します。

例えば、大会の決勝戦ぐらいになりますと、2~4人で対戦することがほとんどです。これは
そのような場合、これまで見せてきたような、縦書きの選手名を横に並べた表示では、余白が増え、少しばかり寂しい表示となってしまいます。
どうせなら、決勝ぐらい、特別に見せてもいいじゃありませんか。

そこで今回は、4人対戦の10○4×を作るのですが、1問正解するごとに、名前の上に設けたセルが1つずつ赤くなっていくような表示を作っていきます。

それでは、「終わった問題」の行と「今の問題」の行を色分け表示するの続きから作っていきます。
完成品はこちらです。

【作り方】

①ルール設定を変える

まずはルール設定セルに、やりたいルールの数値を入力します。
今回は10○4×の設定にします。

また、細かい点ですが、タイトルバーにはFinal Roundと書いておきました。

②行の数を減らし、横に広げる

これまで8人対戦で作ってきましたが、4人対戦にするため、4行分一気に削除します。
H~K列を選択し、右クリックから削除を選びます。

そして、残ったD~G列を選択し、これまでの幅を倍に伸ばします。
今まで22.50で設定していたので、45.00に設定します。

②選手名を縦書きから横書きにし、縦に潰す

D3:G3セルを選択し、右クリックから「セルの書式設定」を選びます。

「配置」タブの「方向」グループを見てみますと、縦に書かれた「文字列」というボックスが黒くなっています。
これをクリックすると、黒くなくなり、横書きに戻ります。

さて、ついでに左側の「文字の制御」グループから「縮小して全体を表示する」にチェックマークをつけておきましょう。これを選んでおくことで、名前が何文字でもきちんとセル内に収まるようになります。
これで、名前が横書きになりました。

そして、名前がかかれている第3行の高さを低くします。
今回は、75.00に設定します。


③選手名の上にタワーとなる行を挿入する

いよいよタワーを作っていきます。
第3行を選択し、「挿入」ボタンを10回押して新しい行を10行作ります。

次に、C列に下から1,2,3,…,10の数字を入力していきます。
すなわち、C3セルは10、C4セルは9、…、C12セルは1です。
この際もオートフィルが役に立ちます。最初の2つを入力しておいて、あとは残りのセルはオートフィルで自動入力してもらうのです。

④正解時に○を入力するように設定する

タワーに用いるセルには、正解時に○(それ以外の文字でも構いませんが)と表示するように設定します。
これは後に、条件付き書式を設定する際に使用します。

D3セルに以下の数式を入力し、G12セルまでオートフィルします。

=IF(SUM(D$17:D$66)>=$C3,"○","")

まず、その列の解答者の正解数をSUM関数でチェックします。SUM関数を用いる範囲を指定する際、行については$マークを必ずつけて下さい。
そして、その正解数を、先ほどC列に書いた数字以上かどうかを判定します。例えば、C列に「7」と書いた行(ここでは6行目です)については、7問以上正解しているかどうかを判定します。このとき列記号の「C」に$マークをつけることもお忘れなく。
判定した結果、TRUEならば○と表示し、FALSEならば何も表示しません。

試しに適当に正誤記録を入力してみましょう。

今の段階だと少々見づらいですが、正解するごとにきちんと○が積み重なっていくことが確認できます。

⑤条件付き書式を用いて、タワーに色がつくように設定する

おなじみ、条件付き書式のお時間です。
D3:G12セルを選択し、「条件付き書式」ボタンを押して、「新しいルール」。
数式は次の通りです。

=D3="○"

シンプルですね。
ですが、セル名にうっかり$をつけてしまわないように!

セルの書式は、文字色は白、塗りつぶしは赤にでもしておいてください。

結果、こうなります。だいぶ仕上がってきました。

⑥タワーのセルを微調整する

さあ、仕上げにかかります。
D3:G12セルを選択し、

・セル内の文字は中央揃えにする
・セルの罫線は太い白にする(方法は勝利・失格時に色が変わるようにするの③を参照)
・高さを大きくする
・それに伴い文字のサイズを大きくする

また、C列に書いた1~10の数字は白色に設定して隠します。

結果、こうなりました。


7/19:追記
これでほぼ完成なのですが、もっとこだわりたい人は次のステップもやっていいかもしれません。

⑦失格時にタワーが消えるように設定する

今の状態ですと、4×で失格になってもなお、赤いタワーが残ってしまいます。
新人王・早押王の決勝のように、「失格時は正解数に関係なく、失格した順に順位がつく」というようなルールの場合、失格してもタワーの表示が残っているというのは少し違和感があります。
そこで、このステップでは、失格になった場合に、タワーの「○」の表示は残しつつ、「赤の塗りつぶし・白の文字」という条件付き書式を適用しないようにします。

⑤で入力した数式を、以下のものに書き換えます。

=AND(D3="○",COUNTIF(D$17:D$66,"x")<$K$14)

AND関数を用いることで、条件付き書式が適用される条件をもう1つ追加しました。それはもちろん、「まだ失格していないか?」ということです。
COUNTIF関数でセルを指定する際、行番号のみ$マークをつけるのをお忘れなく。

ためしに、1人失格させてみましょう。すると、こうなります。

コメント

このブログの人気の投稿

基本①:「m○n×クイズ」の得点表示の作り方

参加者の苗字と名前を分離する/選手名を均等な大きさで表示する

勝ち抜け時に順位を表示する