CSVファイルを開くときにExcelがテキストを数値または日付形式に変換しないようにする

コンマ区切り値(CSV)ファイルは、値を区切るためにコンマを使用する区切りテキストファイルです。 .csvファイルの各行は、各フィールドがカンマで区切られた1つ以上のフィールドで構成されるデータレコードです。 .csvファイルは、Microsoft Office Excel、LibreOffice、OpenOfficeなどのテーブルにデータを保存するプログラムにインポートおよびエクスポートできます。 スプレッドシートで.csvファイルを開くと、スプレッドシートはフィールドの区切り記号(区切り文字)としてコンマを使用します。

次に、サンプルの.csvファイルの内容を示します。

 「名前」、「ロール番号」、「dob」、「住所」「スティーブ」、「011」、「2012年1月10日」、「ジャングルロード、レミンスターMA 1453」「ジャック」、「012」、「12 -Mar-2012 "、" Massachusetts Ave、Lunenburg MA 1462 "" rodriguez "、" 013 "、" 11-May-2011 "、" 780 Lynnway、Lynn MA 1905 " 

Microsoft Excelで.csvファイルを開くと、.csvファイルのデータパターンに応じて、テキスト形式が数値または日付形式に変換されます。 データ形式の自動変換は、場合によっては望ましくないことがあります。 たとえば、次の内容の.csvファイルがあるとします。

上記の例では、出生番号フィールドの先頭にゼロがあり、生年月日はdd-mmm-yyyy形式で指定されています。 ただし、Excelで.csvファイルを開くと、先頭のゼロが切り捨てられ、日付フィールドは自動的にdd-mmm-yy形式にフォーマットされます。 次に例を示します。

自動データ型変換では、.csvファイルに郵便番号、郵便番号、電話番号、または政府発行のIDカード番号が含まれている場合に問題が発生する可能性があります。

$config[ads_text6] not found

先頭のゼロと元の日付形式を保持し、Excelがデータ型を自動的に変換しないようにするにはどうすればよいでしょうか。

CSVファイルのインポート時にExcelがテキストを数値または日付形式に変換しないようにする

オプション1:.csvの名前を.txtに変更してからExcelで開く

Excelがデータ形式を数値/日付形式に自動的に変更しないようにするには、.csvファイルの名前を.txtに変更します。 次に、Microsoft Excelの[ファイル]メニューから.txtファイルを開きます。

次のテキストインポートウィザードを実行し、必要な列のテキスト形式を選択して、プロセスを完了します。

ステップ1で、[ 区切り記号付き]を選択します(これがデフォルトの選択です)。 また、.csvファイルの1行目がキャプションまたはヘッダーテキストを表す場合[My data has headers]オプションを選択します。

3のステップ2では、拡張子が.csvではなく.txtのファイルを開いているため、Excelのデフォルトは区切り文字としてTabです。

[ タブ ]の選択を解除して[ カンマ ]を選択し、[次へ]をクリックします。

ステップ3/3は重要なステップです。 [ 列のデータ形式]セクションで、[ 全般 ]オプションがデフォルトとして選択されていることがわかります。 [ 全般 ]オプションでは、数値を数値に、日付の値を日付に、残りのすべての値をテキストに変換します。 これはまさに私たち望まないことです。

列(「ロール番号」)を選択し、データ形式として[ テキスト]を選択します。 同様に、[ 日付 ]列についても同じ手順を繰り返します。

[ 完了]をクリックします。 Excelは、先行ゼロを切り捨てたり、日付/時刻形式を変更したりすることなく、.csvファイルとまったく同じように値をインポートする必要があります。

.csvファイルの名前を毎回.txtに変更したくないですか? 次に、 オプション2を試してください。


オプション2:データソースのインポート機能を使用して.csvファイルをインポートする

Excelで.csvを開いたときに元のデータ(形式)を保持するには、Excelの[データ]タブの[データのインポート]オプションを使用します。

Excelの[ データ ]タブを選択し、[ テキスト/ CSVから ]をクリックします

コンテンツをインポートする.csvファイルを参照して見つけます。 以下のプレビューウィンドウが表示されます。ここで、ファイルの起点を定義し、必要に応じて区切り文字を変更できます。 プレビューに問題がなければ、[ 読み込み ]ボタンをクリックします。

ただし、この例では、ロール番号フィールドの先頭のゼロは切り捨てられます。また、元の.csvファイルにあるものとは異なるデータタイプの日付フィールドも切り捨てられます。 それで、それを元のフォーマットに変換したいと思います。

[ データ変換 ]ボタンをクリックします。 これにより、Power Queryエディターが開き、上記のプレビューダイアログに表示された内容が正確に表示されます。

重要: Excel 2013または以前のバージョンのExcelを使用している場合は、Excelで Power Query 有効にする必要がある場合があり ます。 Power Query for Excelの最新バージョンをダウンロードしてインストールすると、自動的に有効になります。

(テキスト形式に)変換する列を選択します。

[変換]タブで[ データタイプ: ]をクリックし、ドロップダウンボックスから([ 一般]ではなく)[ テキスト ]を選択します。

[ 列タイプ変更 ]ダイアログが表示されたら、[現在を置換]をクリックします。

[ テキスト ]オプションを選択すると、Excelは.csvファイルの内容を「そのまま」インポートします。フィールドを数値または日付形式にインテリジェントに変換する必要はありません。

フィールドを確認し、Excelの内容の表示に満足している場合は、[ ホーム ]タブの[ 閉じる&ロード ]ボタンをクリックします。 これにより、Power Queryエディターが閉じ、ワークシートにデータが読み込まれます。

それでおしまい! これで、データ形式を変更せずに.csvファイルをExcelにインポートできました。


オプション3:Excelがデータ形式を変換しないようにCSVファイルをフォーマットする

.csvファイルは、Excelで通常開いても([データ]タブからインポートされない)、データ形式がテキストから数値または日付に変換されないようにフォーマットできます。 たとえば、以下のように、日付フィールドとロール番号フィールドの前に"="を付け、それらに2つの二重引用符( "" )を付けます。

 "steve"、 "=" "011" ""、 "=" "10-Jan-2012" ""、 "Jungle Road、Leominster MA 1453" 

の代わりに:

 「スティーブ」、「011」、「2012年1月10日」、「ジャングルロード、レミンスターMA 1453」 

「等しい」記号は、Excelにフィールドを数式としてインポートさせるため、フィールドのデータ形式は変更されません。

  • 注:プログラムまたはスクリプトを使用して.csvファイルを出力している場合は、上記の形式を使用してファイルをエクスポートできます。 ただし、上記の回避策がすべての状況で役立つとは限らないことに注意してください。 たとえば、フィールドデータに二重引用符または「等しい」記号が含まれている場合は、役に立ちません。

次に、.csvファイルをダブルクリックしてMicrosoft Excelで開きます。

Excelは、.csvファイルの場合と同様に、コンテンツを正しくレンダリングする必要があります(日付とロール番号フィールド)。

関連記事