投稿

7月 9, 2017の投稿を表示しています

「Swedish」の得点表示の作り方

イメージ
abcでは、the 11thより、3Rコース別にて「Swedish 10」という形式が行われています。 これは、「10問正解で勝ち抜け、10×で失格」というルールなのですが、この「×」は単なる誤答数を表しているわけではありません。 最初の1○目を正解するまでは誤答で+1×、その次の2○(1~2○)は誤答すると+2×、その次の3○(3~5○)は誤答すると+3×、最後の4○(6~9○)は誤答すると+4×という設定です。 すなわち、正解を重ねていくにつれて、加算される「×」の数が増えていくというものです。勝ち抜けに近づいていくほど慎重なプレイが要求されていきます。 名前の由来は、おそらくクイズの定番問題の一つである「スウェーデンリレー」でしょう。 これは、4人の走者が、それぞれ100m、200m、300m、400mを走るリレー競技のことです。 さて、abcでは10○で勝ち抜けとなっているため、誤答罰は4×までしか設定されておりませんが、勝ち抜け条件のポイントをもっと高く設定する場合は、4×以降の誤答罰も設定する必要があります。 列挙してみると、 10~14P時の誤答:+5× 15~20P時の誤答:+6× 21~27P時の誤答:+7× 28~35P時の誤答:+8× 36~45P時の誤答:+9× …… ちょっと非現実的のように思えますが、加点方式というのは、連答ボーナスとか、答えの文字数がポイントになるとか、サイコロ複数個振って出た目の合計がポイントになるとか、ルール次第でいくらでもインフレさせることは可能です。 このような場合に備え、その時点のポイント数から、誤答時の加算×数を求める公式が必要です。 結論から言うと、次の2式のいずれかを使えばよいです。 (ポイント数をpとする) A. を小数第1位で切り上げ B. を小数第1位で切り捨て それでは、「 「終わった問題」の行と「今の問題」の行を色分け表示する 」の続きから作っていきます。 完成品は こちら です。 【新たに使用するExcelの機能】 ・関数「ROUNDUP」「ROUNDDOWN」 【作り方】 ①加算×数記録テーブルを作る

「10 hits combo」シリーズの得点表示の作り方

イメージ
10 hits comboシリーズの得点表示の作り方を解説します。 10 hits comboシリーズとは、かつてabcの3Rコース別で行われていた連答系のクイズ形式です。 ルールは以下のように変遷しておりますが、「 10ポイント以上到達で勝ち抜け 」「 N回目の誤答はN問休み 」の2点は同じです。 10 hits combo (the firstにて実施) 1問正解で+1P、2連答で+2P、3連答で+3P、4連答で即勝ち抜け。 10 hits combo R (the secondにて実施) 1問正解しただけでは得点は入らない。2連答で+2点、3連答で+3P、4連答で即勝ち抜け。 10 hits combo V  (the third~the seventhにて実施。ABCではthe thirdまで実施) 1問正解しただけでは得点は入らない。2連答で+1点、3連答で+2P、4連答で+3P、5連答で即勝ち抜け。 abcでは既に行われなくなってしまいましたが、STUでは「10Points Ahead」という類似の形式が現在でも行われております。 なぜ今回この形式を解説するかというと、前々回の「 加速型連答 」と前回の「 加速型n休 」を組み合わせることにより、この形式の得点表示を作ることができるからです。 それでは、 前々回(加速型連答) の続きから作っていきます。 完成品は こちら です。 ※今回は先ほど挙げた3種類の形式全てを収録しました。 ウィンドウ下部のタブで切り替えて下さい。 【作り方】 ①加算ポイント記録テーブルの右側に休み数記録テーブルを設ける 加速型連答のシートでは、N~U列に「連答状態記録テーブル」、W~AD列に「加算ポイント記録テーブル」があります。 今回はさらに休みペナルティを導入するため、そのまた更に右側、AF~AM列に「休み数記録テーブル」を設けます。 休み数記録テーブルの作り方は 前回の記事 の①と同様です。 AF8セルに以下の数式を入力し、AM57セルまでオートフィルします。 =IF(D8="x",$R$4*COUNTIF(D$8:D8,"x"),IF(AF7=0,0,AF7-

「m○n休クイズ(加速型)」の得点表示の作り方

イメージ
「m○n休クイズ(固定型)」の得点表示の作り方 の続編です。 今回は、1回目の誤答でn回休み、2回目の誤答で2×n回休み、…というように、誤答するたびに休む問題数が増える場合の作り方を解説します。 [2021年8月1日追記] 「abc」では、2022年開催の「the 20th」にて「Freeze 10」の名前でこの形式が採用されることになりました。 この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),&qu

連答機能をつける(加速ver.)

イメージ
「 連答機能をつける(等速ver.) 」の続編です。 今回は、連答するたびに加算される点数が増加する場合の作り方を解説します。 例によって、 この記事 の続きから作っていきます。 完成品は こちら です。 【作り方】 ①連答状態記録テーブルの数式を変更する 復習しますと、N~U列が「連答状態記録テーブル」、W~AD列が「加算ポイント記録テーブル」でしたね。 等速型では、連答中の場合は連答状態記録テーブルに1を入力するだけでしたが、今回は1の代わりに、その時点で何連答中かを表す数字を表示させます。 N7セルの数式を以下のように変更し、U56セルまでオートフィルします。 =IF(D7="x",0,IF(OR($L7<>"",COUNTIF($D7:$K7,"x")>=1),N6,D7)) ↓ =IF(OR(D7="x",AND(D7<>1,COUNTIF($D7:$K7,1)>=1)),0,IF(D7=1,N6+1,N6)) この式にある2つの条件分岐を見てみましょう。 条件①:その人の連答状態がOFFになった? 連答が途切れるのは、「自分が誤答」か「自分以外が正解」のいずれかでしたね。複数の条件のうちいずれかを満たすかどうかを判定する際には、OR関数を用いればよいのでしたね。 また、「自分以外が正解」の判定には、ここではAND関数を用いています。この条件は、「"自分は正解していない"かつ"誰かが正解している"」と言い換えられます。 なお、AND関数を用いなくても、COUNTIF関数を2つ使って COUNTIF($D7:$K7,1)-COUNTIF(D7,1)=0 という条件式でも可能です。 条件①が真ならば、連答数を0にします。そうでないならば、条件②のチェックに進みます。 条件②:その人が正解した? その人が正解すれば、連答数が1増えます。 条件②も偽であるならば、連答数は1つ前の問題のまま維持します。 これで、ポイント表示セル(4行目)には、きちんと加速型のルールに則ってポイントが表示されるようになり