ExcelやGoogleスプレッドシートにデータをためるときに気をつけていること

こんにちは、hachi8833です。

Excelのファイル(ブックなど)やGoogleスプレッドシートのファイル(以下まとめて「ブック」と表記)を作成するときやデータをためるときに私が心がけていることをまとめました。

はじめに

  • 目的: ブックにデータをためるときに心がけたい点のご紹介
  • 効用: ブックのデータを再利用しやすくする
  • 想定ユーザー: ブックを使うすべてのユーザー

ブックにためたデータは、そのままの形で利用することもあるかもしれませんが、将来CSVにエクスポートするなどして何らかの形で再利用することがよくあります。そのときにデータの形式が整っていないと、将来何らかの形でデータを再利用するときに長大な時間とコストを要してしまうことがあります。

ひとつひとつは地味ですが、データをためるときにこうした点に注意しておくと、後々身を助けると思います。

また、ブックの読みやすさと使いやすさも向上するので、作ったブックを誰かに渡す際のエチケットとしても役に立ちます。

環境

  • 対象: 表計算アプリ全般(種類、バージョンは問いません)

ブックを使うときのポイント集

1. ファイル名とブック名はスペースなしの英数字+アンダースコアのみに統一する

使ってよい文字
英小文字(a〜z)、英大文字(A〜Z)、数字(0〜9)、アンダースコア(_)
避けたい文字
スペース、全角文字(漢字、ひらがな、カタカナなど)
使ってはいけない文字
アンダースコア以外の記号
  • ファイル名に日本語やスペース文字が使われていると、まれに他の環境で扱いに問題が生じたり、ファイルの読み込み部分の開発で余分な工数を要することがあります。

  • シート名はCSVにエクスポートするときにそのままファイル名として使われるので、シート名もファイル名と同じに取り扱うようにしましょう。

こうしておくことで、ブックをメールに添付したときのファイル名の文字化けも根絶できます。

2. シートは1つだけにする

シートが2つ以上になると、システム側で複数シートを読み込むための開発に余分な工数がかかります。1ファイル=1シートに徹することで、開発を依頼するときのコストを下げられます。

私の場合、デフォルトのシート数を1に設定しています。

3. 1行目は「列見出し」とし、白黒反転、1行目でウィンドウ枠を固定する

最小限、この書式を設定するようにしています。ちょっとしたことのようですが、読みやすさ・扱いやすさが大きく向上します。

  • 列見出しは1行目だけに置く
  • 文字を白、背景を黒に設定し、見出しであることをわかりやすくする
  • 1行目を固定する(ブックを1行目の下で分割し、[ウィンドウ] > [ウィンドウ枠の固定])
  • 列見出しを中央揃えにする(このあたりは好みで)

4. 表の途中に「すきま行」「すきま列」を作らない

目的は「いつでも列でフィルタできるようにする」ことです([データ] > [フィルター])。すきま行があるとそこから下の行がフィルタできなくなるので、すきま行を作らないようにしています。

すきま列も、データをCSVにエクスポートしたりするときに邪魔になることがあるので作らないようにしています。

以下のような雁垂れ(厂)風のグルーピングはすきま行ができてしまい、フィルタが効かなくなるので、私は使わないようにしています。

5. 1つの列に複数の情報を記入しない(セル内改行をできるだけ避ける)

上のようにカテゴリや属性といった分類の手がかりになるデータをセル内改行で複数入力すると、フィルタしづらくなったり、CSVで出力したデータを処理するスクリプトが複雑になったりしますので、私は避けています。

1つのセルにセル内改行で複数入力する代わりに、列を増やすようにしています。以下の例では「大分類」列を追加しています。

セルの項目が複数ある場合の対応

日付などのデータが1つの行で複数ある場合はどうしたらよいでしょうか。

セル内改行で無理やり日付を入力する代わりに、私は以下のように「同じ行を複製してそれぞれに日付を入力」するようにしています。ここでは「1998/9/1」「2001/9/2」「2008/1/1」の3つの日付を入力しています。

上の例では「放送日」に関連する「サブタイトル」列もありますが、同じ行を増やす手法なら、このようなサブ項目がある場合でも自然に列内に収めることができ、放送日とサブタイトルの関連も保たれます。

このようにすることでセル内改行を避けることができ、フィルタも妨げられなくなります。詳しくは申し上げませんが、データのスクリプト処理も簡単になります。

もし複数の日付とサブタイトルをセル内改行で無理やり入力すると次のような感じになるでしょう。

項目が少ないうちはよくても、項目が10個20個と増えると「放送日」と「サブタイトル」の対応関係を壊さないように項目を入力するのが困難になるでしょう。

例外: やむをえずセル内改行を使う場合

カテゴリや属性などではなく、説明文のように改行自体に意味のある情報をセルに入力する必要がある場合にのみ、セル内改行を使うようにしています。

6. コメントや全体説明をセルに直接書き込まない

以下のような行や列の内容から外れるようなコメントや全体説明は、ブック内のセルに書き込まないようにしています。

どうしても必要な場合はセルへのコメント機能か、ファイルのプロパティに記入するようにしています。

こうすることで、ブックをCSVにエクスポートしたときに余分な情報が含まれなくなるので、スクリプトでの処理が簡単になります。

まとめ

ブックを扱いやすくし、整合性を保つために、以下の点に気をつけています。

  • ファイル名やシート名は英数字+アンダースコアに統一してファイルを扱いやすくする
  • シートは1つだけにする
  • 1行目の列見出しの書式を整えて見やすくする
  • すきま行やすきま列を避け、フィルタが確実に効くようにする
  • セル内改行を避けてデータを再利用しやすくする
    • セルに複数項目を入力したい場合は列を追加するか行を複製する
  • コメントや全体説明をセルに入力しないようにし、ブック全体をいつでもCSVにエクスポートできるようにする

スプレッドシートは簡単に使えてデータを自由に入力できてしまうので、気をつけて使わないとせっかくのデータの整合性が損なわれ、データの再利用が困難になってしまいます。

データがそこまで成長したら専用のシステムを開発してブックをシステムにインポートすることになると思いますが、普段から上の点に気をつけておくことでシステム化がずっとやりやすくなります。

それではみなさん、早くおうちにお帰りください。

追伸

BPS Webチームのyoshitakuさんからも、こんな点を心がけているとの情報をいただきました。

  • フォントを事前に統一しておく(Mac/Winの両方で表示できるフォントがよい)
  • ブック内で複数のフォントを使わないようにする
  • 印刷に備えて余白などを設定しておく

ちなみに、私はExcelブックへの画像貼り付けはまずやりません。どうしても必要な場合にのみ、Googleスプレッドシートのセル内に画像をぴったり表示する方法でご紹介した方法でGoogleスプレッドシート上でのみ行うようにしています。

関連記事

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ