第2章では、成績管理表の「設計思想」を理解していきます。なぜこういう構造にするのか、どういう考え方でシートを作るのかを理解しておくと、関数を覚えるときに「なるほど、こういう理由があったのか」と納得しながら進められます。
第9回のテーマは「3層構造」。成績管理表の根幹となる設計思想です。
なぜ「3層構造」が必要なのか
最初に「なぜわざわざ3層に分けるのか」という疑問に答えておきます。
例えば「全部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回】なぜシートを分けるのか?設計思想の話


コメント