第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回】なぜシートを分けるのか?設計思想の話



コメント