Excelに外部データを取り込むと、日付や数値が文字列に変換されてしまうことがあります。
これは、Excelが、最初の数行(Accessと同じで8行だったかな?)で、列のデータ形式を自動判断していることが原因です。
次の例は、XMLファイルのインポート直後の状態です。見た目、赤枠は日付と数値ですが、データ形式は文字列です。
そのため、表示形式も左寄せの「文字列」になっており、日付形式を設定しても表示は変わりません。
数値はエラーチェックでも変換できますが、対象のセル範囲を正確に指定しないと機能しないし、日付は関数などで変更するのも(面倒だなぁ。。。)って思います。
Officeの公式サイトでは、DATEVALUE関数を使用する方法が紹介されています。
実は、Excelにはもっと簡単に日付形式に変更する方法があります!
それは「区切り位置」機能を使う方法です。
本来は、一つのセルにあるテキストを複数の列に分割する機能ですが、優秀なデータ変換機能としても使用できます。
この記事では、「区切り位置」機能を使って、文字列を日付や数値に変換する方法を紹介します。
文字列形式の日付を日付形式に変更する
先ほど例で示したXMLファイルで、文字列形式になってしまった「start_date」と「due_date」の列を日付形式に変更します。
一列ずつしか変更できないので「start_date」を例に説明します。
列全体を選択して[データ]メニューから[区切り位置]をクリックします。
ウィザードが表示されたら[次へ]ボタンを2回クリックして3/3を表示します。
列のデータ形式から「日付」を選択して[完了]ボタンをクリックします。
これで終わりです。右寄せに変わりましたね(^^)
拍子抜けするくらい簡単です!表示形式からも、日付に変更されていることが確認できます。
文字列形式の数値を数値形式に変換する
先ほどの例で文字列形式になってしまった「estimated_hours」の列を数値形式に変更します。
列全体を選択して[区切り位置指定ウィザード]の3/3を表示するまでは、さきほどと同じです。
列のデータ形式から「標準」を選択して[完了]ボタンをクリックします。
次に[ホーム]メニューの[データ形式]のプルダウンリストから[数値]をクリックします。
これで終了です。
このフィールドの少数になっていることが確認できます。