Excel ドキュメントを書く時の定石集
SE は未だ Excel での資料作成を求められる場面が多いだろう。Excel はその設計思想や流儀を理解して使わないと、分かりやすいドキュメントにはならない。多くの場合は Excel に「無理な要求」をしているために、汚らしい成果物になっているのだ。Excel を用いて良いドキュメントを書くための定石を以下にまとめる。
目次
Excel でドキュメントを書く時の注意点
- ブック、シートの「既定のスタイル」でデフォルトのフォント、スタイルを指定しておく
- シートを全選択してフォントを変更するのはダメ
- セルのサイズは「既定のフォント」から決まるシートを全選択したりしても、結局は「セルごとにフォントを変えた」のと同じ状態なので、印刷時に見切れるなどの不具合が出がち
- 垂直方向は上揃えをデフォルトにする
- 表の中で折り返し表示するセルが混在したりする時も、上揃えにしてあれば、文章の1文字目の位置が揃って読みやすくなる
- 空のシートを残しておかない
- そのシートに意味があるのかと勘違いさせる
- 「新規作成時のシート数」を「1」にしておくと良いかも
- 「セルの結合 + 折り返して表示」は基本的に使用しない
- 結合したセル内で「折り返して表示」がしてあっても、セルの高さの「自動調整」が正しく効かない (Excel の仕様)
- セル結合は見出し行ぐらいに留めておく
- プロポーショナルフォントは「メイリオ」を使うのがオススメ
- 次点は「Meiryo UI」「游ゴシック」あたり。Windows の游ゴシック Regular ウェイトは細すぎるが…
- 「MS P ゴシック」「MS P 明朝」は、印刷プレビュー・印刷時にフォントが大きめに表示されるので、文字切れが発生しやすい
- メイリオは印刷プレビュー・印刷時にフォントが少し小さめに表示されるので、逆にゆとりができ、文字切れがほぼ起こらない
- また、メイリオは全角文字が等幅なので、半角文字が登場しない場合は等幅フォントのように利用できる
- 「条件付き書式」は行追加で定義が破損しやすいので多用しない
- 条件付き書式の範囲内の行列をコピーし、「コピーしたセルの挿入」を使って貼り付けると定義を維持できる…が、そもそもこういった条件付き書式の仕様を理解している人間が少ない
- マクロで整形したら?とも思うが、条件付き書式をマクロで制御するのは結構大変。費用対効果に合わない
- 条件付き書式は大抵色付けのために使用するだろうが、「色だけで何かを表現しようとしない」定石と照らし合わせると、そもそも多用することは推奨されない
- 色分けがなくても理解できる別の形で表現する
- 条件付き書式の範囲内の行列をコピーし、「コピーしたセルの挿入」を使って貼り付けると定義を維持できる…が、そもそもこういった条件付き書式の仕様を理解している人間が少ない
- 「入力規則」の「リスト」を使う時は、値のマスタを用意して「名前の定義」を使う
- リストの定義に選択肢をベタ書きしてしまうと、項目の増減時にメンテしづらくなる
- 「マスタ」シートなどを用意し、その項目の意味を併記する形で表にしておき、「名前の定義」を使うと、分かりやすくなる
- ハイパーリンクは
HYPERLINK()
関数で書く- 「ハイパーリンクの作成」でローカルや共有ドライブのパスを指定すると、ファイルを移動させた時にパスが壊れやすい
HYPERLINK()
関数はリンクパスを文字列で控えているので、ファイルを移動させたりしてもパスが壊れない
- 罫線は「実線」のみを使い、他の罫線はなるべく使わない
- セルごとに4辺の罫線情報を持っており、辺が隣接する2つのセルで異なる罫線情報を持っている場合は「罫線の種類」に基づく優先順位に沿って罫線が表示される…とかいう罫線の仕様を知らずに使っていると、罫線が崩れたドキュメントを作りやすい
- 「外枠は実線、内側は点線」のような罫線の設定はよく見かけて、確かに見やすいこともあるが、メンテナンス性が悪い
- 余計な罫線を使わず、表全体を選択して実線を適用するだけ、と決めておけば、作成が楽になる
- 表は「No」欄を必ず作る
- 単なる行番号の表現としてコレがあると読み合わせの際に該当箇所を共有しやすい
- シートの行番号は印刷されないから、必ず用意しておく
- あくまでも行番号なので、「成果物 ID」や「テストケース No」などの項番とは別にしておく
- 「成果物 ID」などは行追加・行削除によって項番がズレると面倒なことになる。モノこうした項番は、数式などで表現せず、面倒でもベタ書きした方が良い
- 単純な
ROW()
関数だと、行追加などの変更に弱いので、以下の数式を利用する=IFERROR(MAX(INDIRECT(ADDRESS(1,COLUMN())):INDIRECT(ADDRESS(ROW()-1,COLUMN())))+1,1)
=IFERROR(MAX(INDIRECT(ADDRESS(ROW(),1)):INDIRECT(ADDRESS(ROW(),COLUMN()-1)))+1,1)
(コチラは横列に連番を降る)
- 「文字色」や「セルの背景色」など、色分けで何かを表現しようとしない
- 「文字色」や「セルの背景色」自体は検索ができない。論理的な意味合いも伝わりづらいし、検索性に欠ける
- 白黒で印刷された場合にも意味が通じるよう、数式を使うなどして文字列で表現することが望ましい
- 「空欄」で何かを表現しようとしない
- 空欄は「未入力」なのか「書き忘れ」なのか「何も問題がなかった結果」なのか、という区別が付かない
- 特に何も記すつもりがない場合も、ハイフンを記載するなどして、明確に「何もない」ことを表現した方が分かりやすく、混乱が生じにくくなる
- シート名を必ず書く
- シート名によって、「記載範囲」を定めることになる
- 「今のところ1シートしかない」場合であっても必ず書く
- 日付の書式設定は「
YYYY-MM-DD
」にする- ゼロパディングしてアラインメントを揃えると、桁の読み違えなどが起こりにくい
- 複雑な数式が登場したり、集計したりする場合は、1シート・1セルで計算しきろうとしない
- Excel がデフォルトで3シート用意しているのは、「元データのシート (入力)」「計算するシート (処理)」「結果のみを配置するシート (出力)」という使い方を想定しているため
- 複雑な数式は、途中経過のセルを用意するなどして、一つひとつのセルの数式がシンプルになるよう心掛ける
- 数式を見て他の人が検算 (レビュー) できるように作ること。計算過程が読み解けないと、ミスがあった時に調べきれない
- 印刷時はブック名とページ番号、印刷する日時をヘッダ・フッタに記す
- 紙資料が混ざった時に整理しやすくするため
Excel を Git にコミットする際の注意点
- 個人情報を削除しておく
- エクスプローラでファイルを右クリック → プロパティ
- 詳細タブ → プロパティや個人情報を削除
- 「このファイルから次のプロパティを削除」チェック → 「すべて選択」ボタン
テンプレート
分かりやすく、抜け漏れのないドキュメントを効率良く書くためのテンプレートを作りました。以下よりダウンロードして参考にしてください。
- 関連ブログ記事 : 2018-02-20 Excel 個人的ノウハウ・定石集