- IT Tips
READ MORE
こんにちは、hachi8833です。
Excelのファイル(ブックなど)やGoogleスプレッドシートのファイル(以下まとめて「ブック」と表記)を作成するときやデータをためるときに私が心がけていることをまとめました。
ブックにためたデータは、そのままの形で利用することもあるかもしれませんが、将来CSVにエクスポートするなどして何らかの形で再利用することがよくあります。そのときにデータの形式が整っていないと、将来何らかの形でデータを再利用するときに長大な時間とコストを要してしまうことがあります。
ひとつひとつは地味ですが、データをためるときにこうした点に注意しておくと、後々身を助けると思います。
また、ブックの読みやすさと使いやすさも向上するので、作ったブックを誰かに渡す際のエチケットとしても役に立ちます。
シート名はCSVにエクスポートするときにそのままファイル名として使われるので、シート名もファイル名と同じに取り扱うようにしましょう。
こうしておくことで、ブックをメールに添付したときのファイル名の文字化けも根絶できます。
シートが2つ以上になると、システム側で複数シートを読み込むための開発に余分な工数がかかります。1ファイル=1シートに徹することで、開発を依頼するときのコストを下げられます。
私の場合、デフォルトのシート数を1に設定しています。
最小限、この書式を設定するようにしています。ちょっとしたことのようですが、読みやすさ・扱いやすさが大きく向上します。
目的は「いつでも列でフィルタできるようにする」ことです([データ] > [フィルター])。すきま行があるとそこから下の行がフィルタできなくなるので、すきま行を作らないようにしています。
すきま列も、データをCSVにエクスポートしたりするときに邪魔になることがあるので作らないようにしています。
以下のような雁垂れ(厂)風のグルーピングはすきま行ができてしまい、フィルタが効かなくなるので、私は使わないようにしています。
上のようにカテゴリや属性といった分類の手がかりになるデータをセル内改行で複数入力すると、フィルタしづらくなったり、CSVで出力したデータを処理するスクリプトが複雑になったりしますので、私は避けています。
1つのセルにセル内改行で複数入力する代わりに、列を増やすようにしています。以下の例では「大分類」列を追加しています。
日付などのデータが1つの行で複数ある場合はどうしたらよいでしょうか。
セル内改行で無理やり日付を入力する代わりに、私は以下のように「同じ行を複製してそれぞれに日付を入力」するようにしています。ここでは「1998/9/1」「2001/9/2」「2008/1/1」の3つの日付を入力しています。
上の例では「放送日」に関連する「サブタイトル」列もありますが、同じ行を増やす手法なら、このようなサブ項目がある場合でも自然に列内に収めることができ、放送日とサブタイトルの関連も保たれます。
このようにすることでセル内改行を避けることができ、フィルタも妨げられなくなります。詳しくは申し上げませんが、データのスクリプト処理も簡単になります。
もし複数の日付とサブタイトルをセル内改行で無理やり入力すると次のような感じになるでしょう。
項目が少ないうちはよくても、項目が10個20個と増えると「放送日」と「サブタイトル」の対応関係を壊さないように項目を入力するのが困難になるでしょう。
カテゴリや属性などではなく、説明文のように改行自体に意味のある情報をセルに入力する必要がある場合にのみ、セル内改行を使うようにしています。
以下のような行や列の内容から外れるようなコメントや全体説明は、ブック内のセルに書き込まないようにしています。
どうしても必要な場合はセルへのコメント機能か、ファイルのプロパティに記入するようにしています。
こうすることで、ブックをCSVにエクスポートしたときに余分な情報が含まれなくなるので、スクリプトでの処理が簡単になります。
ブックを扱いやすくし、整合性を保つために、以下の点に気をつけています。
スプレッドシートは簡単に使えてデータを自由に入力できてしまうので、気をつけて使わないとせっかくのデータの整合性が損なわれ、データの再利用が困難になってしまいます。
データがそこまで成長したら専用のシステムを開発してブックをシステムにインポートすることになると思いますが、普段から上の点に気をつけておくことでシステム化がずっとやりやすくなります。
それではみなさん、早くおうちにお帰りください。
BPS Webチームのyoshitakuさんからも、こんな点を心がけているとの情報をいただきました。
ちなみに、私はExcelブックへの画像貼り付けはまずやりません。どうしても必要な場合にのみ、Googleスプレッドシートのセル内に画像をぴったり表示する方法でご紹介した方法でGoogleスプレッドシート上でのみ行うようにしています。