「m○n休クイズ(加速型)」の得点表示の作り方
「m○n休クイズ(固定型)」の得点表示の作り方の続編です。
今回は、1回目の誤答でn回休み、2回目の誤答で2×n回休み、…というように、誤答するたびに休む問題数が増える場合の作り方を解説します。
[2021年8月1日追記]
今回は、1回目の誤答でn回休み、2回目の誤答で2×n回休み、…というように、誤答するたびに休む問題数が増える場合の作り方を解説します。
[2021年8月1日追記]
「abc」では、2022年開催の「the 20th」にて「Freeze 10」の名前でこの形式が採用されることになりました。
このnの値は、休み設定セル(P4セル)に入力されたものをそのまま使います。
それでは、固定型の続きから作っていきましょう。
完成品はこちらです。
=IF(D7="x",$P$4,IF(N6=0,0,N6-1))
↓
=IF(D7="x",$P$4*COUNTIF(D$7:D7,"x"),IF(N6=0,0,N6-1))
P4は、設定セルに入力された「休み」の値です。これに「誤答回数」を表す数値を掛けます。
COUNTIF関数で範囲を指定する際、始点(一番左上のセル)の列だけを絶対参照にし、それ以外を相対参照にしているところがポイントです。
加速度つきn休の場合、「次誤答したら何回休みか」という情報は、常に把握できたほうが良いでしょう。そのため、誤答数は常時表示させておくべきです。
見出しをクリックして5行目を選択し、「挿入」を押し、休み数表示セルの下に1行追加します。
数式は…もういわれなくてもわかりますね?
=COUNTIF(D$8:D$57,"x")&"×"
D5セル(休み数表示セル)に以下の数式を入力し、K5セルまでオートフィルします。
=IF(OFFSET(N$6,$Q$4,0)>=1,OFFSET(N$6,$Q$4,0),"("&(COUNTIF(D$7:D$56,"x")+1)*$P$4&")")
これにより、
・休み中の場合はそのまま残り休み数を表示
・休み中でない場合は括弧書きで「次に誤答した場合の休み数」を表示
という仕様にできます。
ただし、このままだと、ポイント表示セルが常時灰色(=休み扱い)になってしまいます。
そこで、条件付き書式の数式を変更する必要があります。
「ホーム」タブの「条件付き書式」から「ルールの管理」を選びます。
これまでに定義した条件付き書式の一覧が表示されました。
※「書式ルールの表示」のプルダウンメニューは、デフォルトでは「現在の選択範囲」となっております。
つまり、条件付き書式を定義していないセルを選択した状態でこのウィンドウを表示しても、何も条件付き書式は表示されません。
その場合は、「書式ルールの表示」を、「現在の選択範囲」から「このワークシート」に変更してください。
このうち、灰色になっているもの(上の画像だと一番上)を選択し、「ルールの編集」をクリックします。
新しいルールを設定したときと同じウィンドウが表示されます。
そして、条件式を以下のように変更してください。
=OFFSET(N$6,$Q$4,0)>=1
もしも、休み数表示セル(5行目)も灰色にしたい場合は、「ルールの管理」で表示した先ほどのウィンドウで、「適用先」の入力欄を=$D$4:$K$5に変えて下さい。
このnの値は、休み設定セル(P4セル)に入力されたものをそのまま使います。
それでは、固定型の続きから作っていきましょう。
完成品はこちらです。
【作り方】
①休み数記録テーブルの数式を書き換える
N7セルを以下のように書き換え、U56セルまでオートフィルします。=IF(D7="x",$P$4,IF(N6=0,0,N6-1))
↓
=IF(D7="x",$P$4*COUNTIF(D$7:D7,"x"),IF(N6=0,0,N6-1))
P4は、設定セルに入力された「休み」の値です。これに「誤答回数」を表す数値を掛けます。
COUNTIF関数で範囲を指定する際、始点(一番左上のセル)の列だけを絶対参照にし、それ以外を相対参照にしているところがポイントです。
②誤答数を表示させる
※前回の段階で誤答数と休み数両方表示させているのであれば、このステップは必要ありません。加速度つきn休の場合、「次誤答したら何回休みか」という情報は、常に把握できたほうが良いでしょう。そのため、誤答数は常時表示させておくべきです。
見出しをクリックして5行目を選択し、「挿入」を押し、休み数表示セルの下に1行追加します。
数式は…もういわれなくてもわかりますね?
=COUNTIF(D$8:D$57,"x")&"×"
②'休みでない状態には括弧書きで「次誤答で何回休みか」を表示する
セルを増やすのがめんどくさいという場合は、次のような方法も考えられます。D5セル(休み数表示セル)に以下の数式を入力し、K5セルまでオートフィルします。
=IF(OFFSET(N$6,$Q$4,0)>=1,OFFSET(N$6,$Q$4,0),"("&(COUNTIF(D$7:D$56,"x")+1)*$P$4&")")
これにより、
・休み中の場合はそのまま残り休み数を表示
・休み中でない場合は括弧書きで「次に誤答した場合の休み数」を表示
という仕様にできます。
ただし、このままだと、ポイント表示セルが常時灰色(=休み扱い)になってしまいます。
そこで、条件付き書式の数式を変更する必要があります。
「ホーム」タブの「条件付き書式」から「ルールの管理」を選びます。
これまでに定義した条件付き書式の一覧が表示されました。
※「書式ルールの表示」のプルダウンメニューは、デフォルトでは「現在の選択範囲」となっております。
つまり、条件付き書式を定義していないセルを選択した状態でこのウィンドウを表示しても、何も条件付き書式は表示されません。
その場合は、「書式ルールの表示」を、「現在の選択範囲」から「このワークシート」に変更してください。
このうち、灰色になっているもの(上の画像だと一番上)を選択し、「ルールの編集」をクリックします。
新しいルールを設定したときと同じウィンドウが表示されます。
そして、条件式を以下のように変更してください。
=OFFSET(N$6,$Q$4,0)>=1
もしも、休み数表示セル(5行目)も灰色にしたい場合は、「ルールの管理」で表示した先ほどのウィンドウで、「適用先」の入力欄を=$D$4:$K$5に変えて下さい。
コメント
コメントを投稿