◎フォームについて
🤔 第1回予想(グループリーグ)※重複選択あり
セクション1(名前)→ドロップダウン4個
セクション2(グループ(A~D))→【グループ画像を貼る】4つのリーグ、1位2位選択ドロップダウン8個【選択肢マスター(A):グループリーグ名+国名+オッズ(4選択肢 × 4)】
セクション3(グループ(G~H))→【グループ画像を貼る】4つのリーグ、1位2位選択ドロップダウン8個【選択肢マスター(A):グループリーグ名+国名+オッズ(4選択肢 × 4)】
セクション4(グループ(I~L))→【グループ画像を貼る】4つのリーグ、1位2位選択ドロップダウン8個【選択肢マスター(A):グループリーグ名+国名+オッズ(4選択肢 × 4)】
セクション5(3位突破予想)→【グループ画像を貼る】グループリーグの文字を頭につけた48か国、チェックボックス8個選択制限【選択肢マスター(A):グループリーグ名+国名+オッズ(48選択肢)】
第1回予想生データ:4人行 × 33列(name(1) + グループ1/2位(24) + 3位(8))
🤔第2回予想(決勝トーナメント)
セクション1(名前)→ドロップダウン4個
セクション2(単勝)→【トーナメント画像を貼る】1位2位3位4位選択、ドロップダウン4個※重複加点ルールなし【選択肢マスター(B):グループリーグ突破順位+国名(32選択肢)】
セクション3(複勝)→【トーナメント画像を貼る】グループリーグの突破順位、オッズをつけた32か国、チェックボックス10個選択制限【選択肢マスター(C):グループリーグ突破順位+国名+オッズ(32選択肢)】
(例 [A組1位] メキシコ (40倍)、[B組2位] 韓国 (100倍)、[C組1位] アルゼンチン (5.5倍)、[D組2位] スイス (60倍))
セクション4(個人賞)→【グループ画像を貼る】各賞選択、ドロップダウン5個【選択肢マスター(D):グループリーグ突破順位+国名(48選択肢)】
第2回予想生データ:4人行 × 20列(name(1) + 単勝(4) + 複勝(10) + 個人賞(5))
🤔 第3回予想(決勝戦スコア予想)
LINEでいいかな
◎スプレッドシートについて
1. 【実況ボード】(共有用メイン画面)
表1:実況ボード
列 項目名 内容・役割
A 現順位 1位〜4位(自動ソート)
B 氏名 参加者名(1位は金色ハイライト)
C 第1回(GL) グループ1〜3位的中(MAX 280点)
D 第2回(単勝) 1〜4位ピタリ(MAX 380点)
E 第2回(複勝) オッズ×倍率(MAX 790点)
F 第2回(個人賞) MVP・得点王など(MAX 170点)
G 第3回(決勝) スコア的中 + プール金総取り分
H 1位との差 首位とのポイント差(1位は「👑」表示)
I 合計得点 全要素(C〜G)の合算。ソートの基準列
J 暫定損益 今終わった場合の収支(円)
実況ボード
| 現順位 1位〜4位 (自動ソート) | 氏名 | 第1回(GL) | 第2回(単勝) | 第2回(複勝) | 第2回(個人賞) | 第3回(決勝) | 1位との差 | 合計得点 | 損益 |
ヘッダー固定
予想ボード:第1回(GL)
| グループ/順位 | name | name | name |
| A / 1 | =生データからコピー | ={ TRANSPOSE(‘フォームの回答 1’!C1:J1), TRANSPOSE(FILTER(‘フォームの回答 1’!C:J, ‘フォームの回答 1’!B:B=B1)), TRANSPOSE(FILTER(‘フォームの回答 1’!C:J, ‘フォームの回答 1’!B:B=C1)), TRANSPOSE(FILTER(‘フォームの回答 1’!C:J, ‘フォームの回答 1’!B:B=D1)), TRANSPOSE(FILTER(‘フォームの回答 1’!C:J, ‘フォームの回答 1’!B:B=E1)) } | |
| A / 2 | |||
| B / 1 | |||
| B / 2 | |||
| C / 1 | |||
| C / 2 |
予想ボード:第1回(3位)
| name | name | name | name |
| Country | =生データからコピー | ||
| Country | |||
| Country | |||
| Country | |||
| Country | |||
| Country |
予想ボード:第2回(単勝枠)
| 順位 | name | name | name | name |
| =生データからコピー |
予想ボード:第2回(複勝枠)
| name | name | name | name | |
| =生データからコピー | ={ “質問内容(項目名)”, TRANSPOSE(SPLIT(FILTER(‘フォームの回答 1’!C:C, ‘フォームの回答 1’!B:B=B1), “, “)), TRANSPOSE(SPLIT(FILTER(‘フォームの回答 1’!C:C, ‘フォームの回答 1’!B:B=C1), “, “)), TRANSPOSE(SPLIT(FILTER(‘フォームの回答 1’!C:C, ‘フォームの回答 1’!B:B=D1), “, “)), TRANSPOSE(SPLIT(FILTER(‘フォームの回答 1’!C:C, ‘フォームの回答 1’!B:B=E1), “, “)) } |
予想ボード:第2回(個人賞)
| 賞 | name | name | name | name |
| =生データからコピー |
予想ボード:第3回(決勝スコア)
| Country | Country→得失点差も | |
| name | =生データからコピー | 0 |
| name | 3 | 2 |
| name | 2 | 1 |
| name | 0 | 1 |
————————-未定————————-
表2:的中率ボード
列 項目名 内容・計算ルール(精度判定)
A 現順位 表1(実況ボード)のソート順と完全連動
B 氏名 参加者名
C 第1回(GL) (1位+2位+不一致0.5+3位的中) ÷ 32枠
D 第2回(単勝) 1〜4位の順位ピタリ数 ÷ 4枠
E 第2回(複勝) 選んだ10カ国のうち、ベスト16以上に残った数 ÷ 10枠
F 第2回(個人賞) 的中した賞の数 ÷ 5部門
G 第3回(決勝) スコアピタリ(1/0)または勝利チーム的中(0.5/0)
H 総合的中率 C〜G全要素の合計的中ポイント ÷ 総枠数
I 予想スタイル 的中率と点数のバランスから自動付与される称号
————————-未定————————-
2. 【マスター結果】(Inoさん入力用)
計算シートから参照しまくるから表に名前を付けた方がいい。
表1:共通データ(事前入力)
A グループリーグ(フォーマット:A組)手入力
B 国名(フォーマット:カタカナ)手入力
C オッズ(フォーマット:5.5倍)手入力
D グループリーグ順位(フォーマット:A組1位)自動にしたい
A列(グループ) B列(1位) C列(2位) D列(3位)
1 グループ 1位通過 2位通過 3位通過(※)
2 A組 メキシコ アメリカ アルジェリア
… … … … …
13 L組 (国名) (国名) (国名)
=”[“&A2&”1位] “&B2
表2:GL全結果(グループ別)
マスターからプルダウン形式
横
1位
2位
3位
4位
縦
A
B
C
…
表2:GL3位突破
表3:トーナメント全結果
マスターからプルダウン形式
縦
1位
2位
3位
4位
ベスト8
ベスト16
A列:国名 B列:最終結果(入力) C列:係数(自動) D列:オッズ(6/10時点)
スペイン 優勝 3.0 5.5
イングランド ベスト8 0.3 6.5
日本 ベスト16 0.1 100
ブラジル GL敗退 0 9.0
表4:個人賞(配点別)
マスターからプルダウン形式
横
国名
配点
縦
ゴールデンボール(MVP)
ゴールデンブーツ(得点王)
ゴールデングローブ(GK)
最優秀若手選手賞
フェアプレー賞
表5:決勝戦スコア
マスターからプルダウン形式
横
点数 or 国名
縦
Aチーム得点
Bチーム得点
勝利チーム
フォームにコピペできるように準備するだけのもの
表6:【選択肢マスター(A):グループリーグ名+国名(48選択肢)+オッズ】
表7:【選択肢マスター(B):グループリーグ突破順位+国名(32選択肢)】
表8:【選択肢マスター(C):グループリーグ突破順位+国名+オッズ(32選択肢)】
(2022ワールドカップのグループリーグの結果を↓のフォーマットで表示して、[〇組〇位] 国名 (優勝オッズ(適当でいい)) 例 [A組1位] メキシコ (40倍))
表9:【選択肢マスター(D):グループリーグ突破順位+国名(48選択肢)】
表10:名前マスター 4人
3. 【回答データ】(フォーム連携)
Googleフォームから自動でデータが飛んでくる「生データ」置き場。
※ここは関数を壊さないよう、一切触りません。
4. 【計算シート】(裏方の採点エンジン)
🤔 第1回予想(グループリーグ)
表1【1・2位の一致判定】
=MAP(B2:E2, B3:E3, LAMBDA(ichi, ni,
MAX(
IF(ichi = VLOOKUP($A2, マスター!$A:$C, 2, 0), 10, IF(ichi = VLOOKUP($A2, マスター!$A:$C, 3, 0), 5, 0)),
IF(ni = VLOOKUP($A2, マスター!$A:$C, 3, 0), 10, IF(ni = VLOOKUP($A2, マスター!$A:$C, 2, 0), 5, 0))
)
))
=MAP(B2:E25, LAMBDA(yosao,
LET(
kumi, INDEX($A$2:$A$25, ROW(yosao)-ROW($B$2)+1),
is_first, ISODD(ROW(yosao)),
正解1, VLOOKUP(LEFT(kumi, 1), マスター!$A:$C, 2, 0),
正解2, VLOOKUP(LEFT(kumi, 1), マスター!$A:$C, 3, 0),
IF(is_first,
MAX(IF(yosao=正解1, 10, IF(yosao=正解2, 5, 0)), IF(OFFSET(yosao, 1, 0)=正解2, 10, IF(OFFSET(yosao, 1, 0)=正解1, 5, 0))),
0
)
)
))
表2【3位突破の判定】
=MAP(B30:E30, LAMBDA(start_cell,
SUMPRODUCT(COUNTIF(マスター!$D$2:$D$13, OFFSET(start_cell, 0, 0, 8, 1))) * 5
))
🤔第2回予想(決勝トーナメント)
表1【単勝】
表2【複勝】
🤔 第3回予想(決勝戦スコア予想)
表3
選択した国を自動で並べる
予想ボード:第1回(GL)
予想ボード:第1回(3位)
第2回得点: IFS関数による「最高順位倍率 × オッズ」の判定(上限100倍)
第3回判定: 決勝スコアの「一番近い人」のフラグ立て
5. 【清算シミュレーター】(最終結果用)
優勝者の得点と、敗者3人の点差比率を計算し、最終的な**「誰が誰にいくら払うか」**を1円単位で確定させるシート。