壊れないシート設計
共有を前提に「壊れない・拡張できる」表をどう設計するか。1セル1値・縦持ち(タイディデータ)・生データとレポートの分離・入力規則・保護・結合セルや空白行の罠まで、後で泣かないための原則を実例で解説。
スプレッドシートで一番こわいのは、関数の難しさではなく「設計の甘さ」です。 見た目だけ整えた表は、共有して数か月もすると壊れます。並べ替えたら行がバラバラになり、QUERY が途中で止まり、誰かの手入力で集計が合わなくなる——その多くは設計段階で防げたものです。本章では、後で泣かないための「壊れない・拡張できる」表の作り方を扱います。
本章で扱うのは次の9つです。
- 1セル1値の原則 — 1つのセルに複数情報を詰めない
- 縦持ち(タイディデータ) — 1行=1レコード、1列=1項目
- 表の置き方とヘッダ行
- 生データとレポートの分離 — 原本は触らない
- データ入力規則 — 表記ゆれと誤入力を防ぐ
- 保護 — セル・シートの保護で事故を防ぐ
- 結合セルの害
- 空白行・空白列を挟まない
- 命名 — 将来の自分への配慮
原則1:1セル1値
1つのセルには 1つの値だけ を入れます。住所と電話番号、氏名と部署、数量と単位——これらを同じセルに詰め込むと、後から取り出すのが一気に難しくなります。
なぜか。 関数も集計も、データが「分かれている」ことを前提に作られているからです。SUM は数値だけの列を合計し、COUNTIF は1つの項目で数えます。1,200円 のように単位を混ぜると数値として扱えず、計算できません。
A1 に 田中太郎 / 営業部 と入れる(並べ替えも抽出もできない)
氏名 列に 田中太郎、部署 列に 営業部 と分ける
数量 列に 12個(文字列なので合計できない)
数量 列に 12、単位はヘッダ名 数量(個) か別列に
数値は数値のまま入れ、単位や記号は列見出しに逃がすのが基本です。すでに詰め込んでしまったデータを分割する方法は 第8章 データ整形 で扱います。
原則2:縦持ち(タイディデータ)
設計の心臓部です。データは 縦持ち で持ちます。すなわち 1行=1レコード(1件)、1列=1項目(属性)、そして1つのセルに1つの値。この整然とした形を「タイディ(tidy)データ」と呼びます。
やりがちな失敗は「横持ち」です。月ごとに列を増やしていく形は、入力中は見やすく感じますが、関数とは極端に相性が悪くなります。
| 商品 | 1月 | 2月 | 3月 | 4月 | …(毎月列が増える)
| りんご | 100 | 120 | 90 | …
| みかん | 80 | 60 | 110 | …
| 日付 | 商品 | 売上 | ← 縦持ち(良い):1行=1レコード
| 2026-01-01 | りんご | 100 |
| 2026-01-01 | みかん | 80 |
| 2026-02-01 | りんご | 120 |
なぜ縦持ちが強いのか。 縦持ちなら、新しい月のデータは「下に1行足すだけ」で済みます。列構造は一切変わらないので、QUERY・ピボットテーブル・SUMIF といった集計の仕組みがそのまま使い続けられます。横持ちは月が増えるたびに数式の範囲を直す必要があり、QUERY のように「列=項目」を前提とするツールではうまく扱えません。
縦持ちが、ピボット・QUERY・関数すべての土台になります。ここを外すと後の章のテクニックが効きません。
原則3:表の置き方とヘッダ行
表は 左上(A1 付近)から 置きます。見栄えのために上や左に空白を入れたくなりますが、データの開始位置が散らかると、範囲指定や QUERY の Col 指定がずれて事故のもとになります。
ヘッダ行は 1行だけ にし、その 直下からデータ を始めます。
1行目に項目名だけ、タイトルは別シートや図形・セル外の説明へ
ヘッダが2段になったり、見出しの上に飾りの行が入ると、多くの関数が「どこからがデータか」を誤認します。表の上部はできるだけシンプルに保ちます。ヘッダ行を画面に固定したい場合は、第2章 基本操作 で扱う「行の固定(フリーズ)」を使えば、構造を崩さずに見やすくできます。
原則4:生データとレポートを分ける
入力する生データ と、集計・レポート は別のシートに分けます。生データのシートは「原本」として、人がセルを直接いじらない領域にします。
なぜか。 同じシートで集計の数式と手入力が混ざると、うっかり数式を上書きしたり、並べ替えで数式とデータの対応が崩れたりします。生データを原本として隔離しておけば、レポート側がどれだけ壊れても、原本から作り直せます。
生データシート
縦持ちで、ひたすら下に追記するだけ。色も結合もなし。集計の数式は置かない。フォームからの自動入力先もここ。
レポートシート
生データを QUERY やピボット、関数で参照して集計・可視化する。ここは何度作り直してもよい「使い捨て」の層。
原則5:データ入力規則で誤入力を防ぐ
表記ゆれと誤入力は、入る前にせき止めるのが最も安上がりです。スプレッドシートには「データの入力規則」があり、セルに入れられる値を制限できます。
| 規則 | 用途 | 効果 |
|---|---|---|
| プルダウン(リスト) | カテゴリ・ステータス・担当者 | 決めた選択肢からしか選べず、表記ゆれが消える |
| チェックボックス | 完了/未完、対象/対象外 | TRUE/FALSE で入り、関数で数えやすい |
| 数値の範囲 | 点数・割合・数量 | 想定外の値(負数や桁違い)を弾く |
| 日付 | 入力日・期限 | 日付として扱える形に揃う |
プルダウンは選択肢の元になるリストを別シートにまとめ、それを参照させると保守が楽です。選択肢を増やすときはそのリストに足すだけで済みます。
原則6:保護で事故を防ぐ
共有相手が多いほど、「うっかり数式を消した」「列を丸ごと削除した」が起きます。これを防ぐのが 保護 です。スプレッドシートでは、特定の セル範囲 や シート全体 に対して、編集できる人を制限したり、編集時に警告を出したりできます。
- 範囲の保護:集計の数式が入った範囲や、原本の生データを「特定の編集者だけ」が変更できるようにする。
- シートの保護:レポートシート全体をロックし、一部のセルだけ入力可にする(逆指定)。
- 警告のみ:完全に禁止せず、編集しようとすると確認が出る緩い設定も選べる。
やりがちな失敗 は、全員に「編集者」権限を渡して保護を一切かけないこと。これでは事故は時間の問題です。最低限、数式と原本だけは守ります。権限(閲覧者・編集者など)の基本は 第2章 基本操作 で扱います。保護の設定 UI は変わりうるので、詳細は 公式ヘルプ を確認してください。
原則7:結合セルは使わない
見出しを中央に大きく見せたくて セルの結合 を使いたくなりますが、生データの表では原則として使いません。
なぜか。 結合セルは「複数のセルを1つに見せる」だけで、データの構造としては不自然な状態です。並べ替えや集計は「1行=1レコード」を前提に動くため、その前提を崩す結合と相性が悪いのです。中央寄せで見出しを大きく見せたいだけなら、「選択範囲を中央に配置」のような 結合しない書式 で代替できます。
原則8:空白行・空白列を挟まない
表の途中に空の行や列を入れないようにします。区切りや見やすさのつもりでも、これが範囲認識を断ち切ります。
なぜか。 多くの操作は「連続したデータの塊」を1つの表とみなします。Ctrl+A での範囲選択、QUERY の自動範囲、ピボットの元データ範囲などは、空白行・空白列に出会うとそこで途切れます。結果、空白より下のデータが集計から漏れる、という静かな事故が起きます。
部署ごとに1行ずつ空けて見やすくする(集計が途中で止まる)
空けずに詰めて並べ、部署 列で区別する。見やすさは「色」「罫線」「フィルタ」で出す
見た目の区切りが欲しいときは、空白行ではなく罫線・背景色・グループ化で表現します。データの連続性は崩しません。
原則9:命名は将来の自分への配慮
最後に 命名 です。シートに シート1・コピー・最終版2、列に意味のない見出しを残すと、半年後の自分や引き継いだ人が解読に苦しみます。
- シート名:
生データ_売上・レポート_月次・設定_選択肢のように、役割が一目で分かる名前にする。 - 名前付き範囲:よく参照する範囲に名前を付けると、数式が
=SUM(売上)のように読みやすくなり、範囲がずれても名前側を直すだけで済む。 - 列見出し:略語を避け、単位を含める(
金額(円)・数量(個))。
まとめ
壊れないシートの本質は、たった一つ——データを「整然とした縦持ち」で、原本として守る ことに尽きます。1セル1値で分け、縦に積み、生データとレポートを分け、入力規則と保護で事故を防ぎ、結合セルと空白行という構造の敵を排除する。これだけで、共有しても壊れない土台ができます。
設計が整えば、いよいよ関数の出番です。次は 第4章 関数の文法と参照 で、整えたデータを動かすための数式の基本を学びましょう。手を動かして確かめたくなったら、第5部 演習 や 関数カタログ、用語に迷ったら 用語集 も活用してください。