海外の統計情報などのCSVファイルをExcelで読み込むと日付が正しく認識されないことがある。これは、Excelが自動的に日付を日本国内の表記に合わせてしまうためだ。このような場合の解決方法を紹介しよう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Office 2013/2016/2019/365
「Microsoft Excel(エクセル)」で、海外の統計情報などのCSVファイルを読み込んだ際に日付データの読み込みに失敗した経験はないだろうか。米国式の「月、日、年」などの順で記述された日付データを、日本語版Excelで読み込むと、日本国内で多く使われる「年、月、日」の順で日付を解釈しようとして失敗してしまうことがある。
特に、西暦を省略して2桁表記(2012年1月3日を「1/3/12」といった具合に表記)とすると、年を判断する手掛かりがなくなるため、解釈の幅が広がり、米国式表記を日本式表記として解釈できるようになってしまう。しかし、日付によっては、途中から書式に合わなくなり、日付データにならない場合などがある。
このような場合には、[テキストファイル]ウィザードやPower Queryの「データの変換」を使い、CSVファイルの読み込み時に日付データの形式を指定することで、セルに正しい日付データ(シリアル値)を書き込むことが可能になる。
なお、タブ区切りのテキストファイルなども同じやり方で日付書式を指定できる。対象は、CSVだけでなく、テキストファイルや類似のファイル形式全般だ。ただし、表記が煩雑になるため、ここでは一括して「CSVファイル」として表記する。
[テキストファイル]ウィザードとは、「テキストファイル」をExcelで開いたときに自動的に起動される機能だ。これを使うと、読み込み時に日付テキストの書式指定(年、月、日の並び)をユーザーが指定できるようになる。
Excelは、拡張子が「.csv」になっているCSVファイルには関連付けがなされており、エクスプローラーからCSVファイルをダブルクリックするなどしてExcelを起動させることができる。しかし、この方法でCSVファイルを開いてしまうと、日付データは、全て日本式の「年、月、日」で並んでいると解釈され、これに合わないパターンは日付として認識されない。
[テキストファイル]ウィザードを起動して読み込むには、CSVファイルの拡張子を事前に「.txt」に変更後、起動したExcel側からファイルを開いて読み込みを行う。[ファイル]タブの[開く]−[参照]を使い、[ファイルを開く]ダイアログを表示させる。
[ファイルを開く]ダイアログで目的のファイルがあるフォルダを開いたら、右下のドロップダウンリストから[テキストファイル]を選んで、対象のファイルを選択する。
すると、[テキストファイル]ウィザードが起動する。このウィザードは3ページあり、最初のページでは、「データの形式」「読み込み開始行」「文字コード」などを指定する。CSVファイルなら「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選ぶ必要がある。もっとも、これがデフォルト設定なので、確認するだけでよい。CSVファイルでは先頭行に項目名などが入っていることがあり、その場合には「先頭行をデータの見出しとして使用する」のチェックを「オン」にする。
[次へ]ボタンで2ページ目に移動したら「区切り文字」の「カンマ」の前にあるチェックを「オン」にする。CSVファイルなら「データのプレビュー」が項目の間に正しく線が引かれた状態になるはずである。
さらに[次へ]ボタンで3ページ目に移動したら、「データのプレビュー」で、日付のある列を選択し、「列のデータ形式」で[日付]を選択、日時の並びを指定する。
このドロップダウンリストでは、「年、月、日」が「Y、M、D」で表現されており、米国式の「月、日、年」ならば["MDY"]を選択する。この指定は列ごとに行う必要があり、複数の日付列があるなら、それぞれで指定する必要がある。最後に[完了]ボタンを押せば、日付を正しく解釈してCSVファイルが読み込まれるはずである。
このやり方は、日付の書式指定以外にも、文字コードの指定なども行うことが可能だ。CSVファイルをエクスプローラーから開いて、文字化けしているような場合には、この方法を試してみるとよい。むしろ、CSVファイルはエクスプローラーから直接開かず、Excel内から開いた方がトラブルは少ない。
CSVファイルを扱う方法として、Tech TIPS「【Excel】毎日集計のCSVファイルもクエリ機能で一発自動更新」でPower Queryを使う方法を紹介した。
この方法でも、日本式以外の日付形式を読み込ませることは可能だ。ただし、前記記事で説明した手順でシートにCSVファイルを読み込む前に、日付書式を指定する作業が必要になる。
同一ファイル名のCSVファイルを繰り返し読み込む必要があるなら、Power Queryを使う方が効率がよい。というのは、日付部分の書式の変換はPower Queryならば一回設定すれば、以後、読み込みのたびに変換を行ってくれるからだ。前述の[テキストファイル]ウィザードでは、CSVファイルを読み込むたびにウィザードを実行する必要がある。また、Power Queryなら、CSVファイルの拡張子を.txtに変更する必要もない。
Copyright© Digital Advantage Corp. All Rights Reserved.