第9回 成績管理表は「3層構造」で考える

第2章では、成績管理表の「設計思想」を理解していきます。なぜこういう構造にするのか、どういう考え方でシートを作るのかを理解しておくと、関数を覚えるときに「なるほど、こういう理由があったのか」と納得しながら進められます。

第9回のテーマは「3層構造」。成績管理表の根幹となる設計思想です。

なぜ「3層構造」が必要なのか

最初に「なぜわざわざ3層に分けるのか」という疑問に答えておきます。

例えば「全部1枚のシートに入力すればいいんじゃないの?」と思う方もいるかもしれません。実際にそれをやってみると、こんな問題が起きます。

⚠️ 1シートにすべてまとめると起きる問題
  • 試合を重ねるたびにデータが縦に伸び続けて管理が大変になる
  • 選手ごとの通算成績を出すために毎回手作業が必要になる
  • ランキングを更新するたびに並び替えの手作業が発生する
  • 1箇所を修正したら別の箇所も直す必要が出てくる

これを解決するのが「入力・集計・表示を完全に分離する」という3層構造の考え方です。

入力層:データを受け取るだけのシート

🟢 入力層の役割

Googleフォームから送信されたデータを受け取って、ただ記録するだけのシートです。このシートは絶対に手動編集しません。

入力層のシートをイメージするとこんな形です。

タイムスタンプ 試合日 選手名 第一打席 第二打席
2026/5/11 15:32 2026/5/11 田中 三安 遊ゴ
2026/5/11 15:35 2026/5/11 鈴木 中2 右本
2026/5/11 15:38 2026/5/11 山田 三振 四球

フォームに入力するたびに、このように1行ずつデータが積み上がっていきます。シーズンを通して試合を重ねると、数百行になることもあります。

📝 入力層のポイント

入力層は「生データの倉庫」です。データが増えても問題ありません。集計はすべて集計層の関数が自動でやってくれます。

集計層:成績を自動計算するシート

🔵 集計層の役割

入力層の生データを関数で集計して、打率・防御率・OPSなどの成績指標を自動計算するシートです。試合ごとの成績・年間成績・チーム成績の3種類を管理します。

集計層のシートをイメージするとこんな形です。

選手名 打席 打数 安打 打率 OPS
田中 42 38 14 .368 .921
鈴木 38 35 11 .314 .812

この数字はすべて関数が自動で計算しています。入力層にデータが追加されるたびに、この数字もリアルタイムで更新されます。

ランキング層:順位を自動表示するシート

🟠 ランキング層の役割

集計層の成績データを部門ごとに自動で並び替えて、ランキング形式で表示するシートです。規定打席に到達した選手だけを表示するなど、条件付きの絞り込みもここで行います。

順位 選手名 打率
1位 田中 .368
2位 鈴木 .314
3位 山田 .298

集計層の成績が更新されると、ランキングも自動で並び替わります。手動での並び替えは一切不要です。

3層構造のまとめ

役割 あなたがやること
🟢 入力層 フォームの回答を記録 フォームに入力するだけ
🔵 集計層 成績を自動計算 何もしなくていい(自動)
🟠 ランキング層 順位を自動表示 何もしなくていい(自動)
✅ この記事のまとめ
  • 1シートにまとめると管理が大変になる → だから3層に分ける
  • 入力層:フォームのデータを受け取る倉庫
  • 集計層:関数で成績を自動計算する
  • ランキング層:成績を自動で並び替えて表示する
  • 入力するのはフォームだけ、あとはすべて自動

次回予告

次回は「なぜシートを分けるのか?設計思想の話」。3層構造の考え方をさらに深掘りして、「どういう基準でシートを分けるのか」という設計判断の軸を解説します。

▶︎ 次回:【第10回】なぜシートを分けるのか?設計思想の話

コメント

タイトルとURLをコピーしました