こんにちは。
今回は、様々なシステム管理ツールなどで、なにかと登場する「CSVファイル」について、解説していきたいと思います。
Google Workspaceの管理機能でも、ユーザーの一括登録やダウンロードデータとしてCSVファイルが登場します。理解しないままCSVファイルを取り扱うと、大事なデータを壊してしまう可能性もあるので、ぜひ覚えておきましょう。
記事が長くなってしまったので、今回はCSVファイルの概要とデータを参照する方法についてご紹介します。
CSVファイルとは?
CSVとは「comma separated values」の略で、データが「カンマ」で区切られたファイルの事です。(カンマとは半角の「,」の事です。)
正確には「カンマ」と「改行」で区切られたデータファイルなのですが、言葉では伝えづらいため、図で解説しましょう。
例えば、名前・電話番号・住所が登録されている「電話帳」のCSVファイルがあった場合、データは以下のようなイメージになります。
CSVデータをもう少し詳しく見てみましょう。以下のように1行につき、一人のデータが記載されていて、1行のデータの中は、名前・電話番号・住所が「半角カンマ」で区切られています。
このCSVデータは、誰でも簡単に作ることができます。PCのメモ帳を開いて、上の「CSVデータ」のとおり入力すれば良いのです。
上記のようにCSVファイルは、エクセルやスプレッドシートのような、行と列で表現するデータ向けの最もシンプルなファイルデータ形式です。ユーザー情報の一括登録や売上レポートのダウンロードなど、多くの場面で利用されています。
なお、ファイルの拡張子は「.csv」が使われます。
CSVファイルのルールを理解しよう
このように様々なデータを取り扱うCSVファイルですが、実はいくつかの細かいルールがあります。しかもそのルールは、取り扱うシステムによって厳密に定められているケースがあり、理解しておく必要があります。
ここでは、そのルールについて解説します。
特にシステムにアップロードするCSVファイルを作成・編集する場合、これらのルールについては認識しておく必要があります。
文字コードの種類
文字コードとは、テキストファイル(CSVもテキストファイルの仲間です)をコンピューターに認識させるための文字の種類のようなものです。日本語圏内では一般的に「Shift_JIS」や「UTF-8」「EUC_JP」などが使用されています。
ちなみに、「文字化け」という言葉はご存知かと思いますが、あれはテキストファイルの文字コードと、それを表示しようとするコンピュータ側の文字コードの認識違いによって起こる現象です。
改行の種類
実は「改行」にもいくつか種類があります。一般的には「CRLF」「LF」「CR」の3種類で改行コードと呼ばれています。この改行コードがシステムが希望するものと異なると、CSVデータをアップロードしてもうまく登録できない場合があります。
ヘッダ行の有無
CSVファイルの1行目をタイトル(名前・住所・・などのタイトル文字)とするかどうか、のルールです。上記のイメージだと「ヘッダ行あり」のルールのCSVですね。
こちらも「ヘッダ行なし」のルールのシステムに、「ヘッダ行あり」のデータをアップロードしてしまうと、1行のタイトルもデータとして取り込まれてしまう可能性があるので注意が必要です。
データ括り文字
海外の住所など、CSVデータ内に半角カンマが入る場合、そのカンマ自体が区切り文字とみなされ、データが分断されてしまいます。
これを回避するために、ひとつのデータをダブルクォーテーション「”」で括る。というルールもあります。
このようなイメージです。これであればデータ内に半角カンマがあってもシステムは正しく認識できます。
ダブルクォーテーションではなく、これがシングルクォーテーション「’」だったり、「数値データは括らない」なんていうややこしいルールもあります。
タブ区切りもある
基本的にCSVファイルは半角カンマ区切りですが、これがタブ文字(タブキーで入力される空白のようなもの)で区切られている場合もあります。この場合は「TSVファイル」と呼ばれる事が多いです。
CSVファイルのルールを調べよう
あるシステムからCSVファイルを初めてダウンロードした場合、それがどのようなルールなのか確認しておくことをおすすめします。
いちばん簡単な方法は、WindowsであればCSVファイルをメモ帳で開くことです。Macでは CotEditor という無料のテキストエディタがおすすめです。
メモ帳を立ち上げ、エクスプローラーから対象のCSVファイルをメモ帳へドラッグ&ドロップすることで開くことができます。
PCによっては、CSVファイルがExcelに紐づいている場合がありますので、CSVファイルはダブルクリックせずにいったんメモ帳で開きましょう。
メモ帳で開くと、以下のようにCSVのルールがわかると思います。
システムにアップロードする場合のCSVファイルのルールは、おそらくそのシステムの画面やマニュアル等に記載されていると思います。もしくは、システムからCSVファイルのサンプルファイルがダウンロードできるはずです。
CSVファイルはダブルクリックして開かない
メモ帳やCotEditorなどのテキストエディタでCSVファイルを開いても、人間からすると、ごちゃごちゃしたデータに見えてしまい、よくわからないと思います。
行列データなので、ここはGoogleスプレッドシートやExcelで開きたいところです。
ところが、CSVファイルを「ダブルクリック」や「プログラムから開く」でExcelなどの表計算ソフトでそのまま開いてしまうと、データが勝手に変更されてしまう場合があります。
下の図をご覧ください。同じCSVファイルをメモ帳とExcelそれぞれで開いたところです。電話番号はハイフンなしのデータです。メモ帳は問題ありませんが、Excelではおかしなことになっています。
これは、電話番号のデータがExcelによって勝手に数値に変換され、指数表記になってしまっています。つまり、「08011112222」という電話番号なのに、「8011112222」という最初のゼロが欠けたデータになってしまっているのです。
これに気づかずにそのままデータを保存してしまうと、意図しないままデータが壊れてしまいます。
CSVファイルの正しい開き方
それでは、GoogleスプレッドシートやExcelでCSVデータを壊さずに開く方法をご紹介します。
GoogleスプレッドシートでCSVファイルを開く方法
最初にGoogleドライブ(https://drive.google.com/)にアクセスし、左上の新規から新しいGoogleスプレッドシートを選択します。
ファイル → インポートを選択します。
ファイルをインポート画面が表示されるので、「アップロード」タブを選択し、パソコン上のCSVファイルをドラッグします。
次の画面で、区切り文字の種類を「自動的に検出する」に、「テキストを数値、日付、数式に変換する」のチェックボックスをOFFにして、データをインポートボタンを選択します。インポート場所は、お好みの値で結構です。
無事にデータがインポートされました。テキストを数値などに変換しない設定にしたので、電話番号も壊れていません。
ExcelでCSVファイルを開く方法
続いて、ExcelでCSVファイルを開く方法をご紹介します。
まずは、新規でExcelファイルを開き、データ → データの取得 → テキストまたはCSVから を選択します。
ファイル選択画面が表示されるので、対象のCSVファイルを選択します。
次に、以下の画面が表示されるので、「元のファイル」には文字コードを指定します。通常はExcelが自動判別してくれますが、プレビューが文字化けしている場合は、上で紹介した方法で調べた文字コードと合わせます。「区切り記号」は「コンマ」、「データ型検出」は「最初の200行に基づく」に設定します。
この時点でプレビューの電話番号の最初のゼロが消えてしまっていますが、次の画面で調整するので今は問題ありません。そのまま「データの変換」ボタンを押します。
Power Query エディターという見慣れない画面が出てきたと思います。この画面でCSVデータをどう取り込むのか、列ごとに詳しく設定できます。
この画面を見ると、電話番号の最初のゼロが消えてしまっています。そして電話番号のタイトルの左に というアイコンが表示されています。これは電話番号が「数値」として認識されていることを表しています。
この電話番号の列を選択し、右クリックメニューから「型の変更」を選択。「整数」にチェックが入っているのでこれを「テキスト」に変更します。
これで電話番号が正しく表示されました。
今回は一つの列だけを変更しましたが、列が多い場合は、すべての列を選択して一括でテキストに変更しても構いません。
問題なければ左上の「閉じて読み込む」を選択します。
無事にデータが取り込まれました!
まとめ – CSVファイルは怖くない
一括でデータを取り扱えるCSVファイルは、便利な半面、細かい落とし穴があることがわかりました。しかし、今回紹介したCSVファイルの特性を理解すれば怖くありません。データを一括で操作できるようになり、作業効率もアップするはずです。
次回はCSVファイルの編集や保存についてご紹介します。