【Googleスプレッドシート】CSV取り込み時の数値変換ミス!電話番号や郵便番号の扱い

【Googleスプレッドシート】CSV取り込み時の数値変換ミス!電話番号や郵便番号の扱い
🛡️ 超解決

CSVファイルをGoogleスプレッドシートに取り込んだ際、電話番号や郵便番号が自動的に数値に変換されてしまい、先頭のゼロが消えたり、ハイフンが省かれたりするトラブルは非常に多いです。この問題は、スプレッドシートがデータ型を自動判別する仕組みに起因します。本記事では、CSV取り込み時に電話番号や郵便番号を正しく文字列として保持するための具体的な方法を、原因解説とともにお伝えします。

【要点】CSV取り込みで数値変換を防ぐ3つの対策

  • インポート時に「テキストとして」を選択: 取り込みダイアログで各列の書式を「テキスト」に指定することで、先頭ゼロやハイフンを保持したまま取り込めます。
  • 数式や関数で変換する方法: 既に変換されたデータも、TEXT関数やセルの書式設定で元の形に戻せます。
  • CSVファイルを事前に編集する: 元データの電話番号・郵便番号をダブルクォーテーションで囲むか、先頭にアポストロフィを付けることで、自動変換を回避できます。

ADVERTISEMENT

CSV取り込み時に数値変換が起きる仕組み

GoogleスプレッドシートはCSVを取り込む際、各セルの内容を自動的に判別して適切なデータ型に変換します。たとえば「0120-111-222」という電話番号は、数字と記号を含むため「-111222」のような数値と解釈されることがあります。また「00123」のような郵便番号は、先頭ゼロを無視して「123」に変換されます。この自動変換はユーザーにとって便利な面もありますが、電話番号や郵便番号のように文字列として扱いたいデータには不都合です。変換のルールは、数字のみで構成された値は数値に、日付形式は日付に、それ以外は文字列として扱われます。しかし、ハイフンやスラッシュが含まれる場合も、スプレッドシートが解釈可能な形式であれば変換が試みられます。

CSV取り込み時に数値変換を防ぐ具体的な手順

方法1: インポート時に列の書式を「テキスト」に指定する

  1. CSVをインポートする
    Googleスプレッドシートを開き、メニュー「ファイル」→「インポート」をクリックします。アップロードするCSVファイルを選択します。
  2. インポート設定で「カスタム区切り文字」を選ぶ
    「インポート場所」は「新しいシート」または「現在のシートを置き換え」を選び、「区切り文字」は「カンマ」や「タブ」などを選択します。
  3. 列の書式を「テキスト」に変更する
    インポートダイアログで「各列のデータ形式」という項目が表示されます。電話番号や郵便番号が含まれる列を選択し、書式を「プレーンテキスト」に変更します。すべての列をまとめて変更することも可能です。
  4. 「インポート」ボタンをクリック
    設定が終わったら「インポート」をクリックします。先頭ゼロやハイフンが保持された状態でデータが取り込まれます。

方法2: 既に変換されたデータをTEXT関数で戻す

  1. 変換されたデータを確認する
    たとえば、電話番号が「08012345678」のように数値(ハイフンなし)で入っている場合、元の形式を推測します。
  2. TEXT関数で書式を指定する
    隣の列に =TEXT(A1, "000-0000-0000") のような式を入力します。電話番号の桁数に合わせて書式文字列を設定します。郵便番号の場合は =TEXT(B1, "000-0000") などを使用します。
  3. オートフィルでコピーする
    数式を入力したセルの右下をドラッグし、すべての行に適用します。結果を別の列に貼り付ける場合は、値のみコピー(Ctrl+Shift+V)を行います。

方法3: 元CSVファイルを編集してからインポートする

  1. CSVファイルをテキストエディタで開く
    メモ帳や任意のエディタでCSVファイルを開きます。
  2. 電話番号をダブルクォーテーションで囲む
    「”080-1234-5678″」のように、各電話番号や郵便番号をダブルクォーテーションで囲みます。これにより、スプレッドシートは値を文字列として扱います。
  3. 先頭にアポストロフィを付ける
    代わりに「’080-1234-5678」のようにシングルクォーテーションを先頭に付ける方法もあります。ただし、このアポストロフィは表示されず、文字列として認識させるための記号です。
  4. ファイルを保存してインポートする
    編集後、ファイルを保存し、通常の方法でGoogleスプレッドシートにインポートします。今度は期待通りの形式で取り込まれるはずです。

よくある失敗例とその対処法

インポート時に列の書式設定が見つからない

CSVファイルをインポートする際、ダイアログに「各列のデータ形式」の項目が表示されない場合があります。これは、ファイルのアップロード方法が「ファイル」→「開く」など別の方法を使っている可能性があります。必ず「ファイル」→「インポート」を使ってください。また、ブラウザの画面サイズによっては設定項目が折りたたまれていることもあります。ダイアログ内の「詳細設定」を開くと表示される場合もあります。

TEXT関数を使っても正しく変換できない

TEXT関数で書式を指定しても、元の数値が正しい桁数でない場合や、データに余計なスペースが含まれている場合に失敗します。たとえば、元の電話番号が「8012345678」の場合は、書式を「000-0000-0000」にすると「080-1234-5678」となりますが、元データにハイフンが混ざっていると数字として認識されないことがあります。まずは =VALUE(SUBSTITUTE(A1,"-","")) などで数字のみ抽出してからTEXT関数を使うと安定します。

ダブルクォーテーションで囲んだのに変換されてしまう

CSV形式では、値にカンマや改行が含まれる場合にダブルクォーテーションで囲みますが、スプレッドシートはダブルクォーテーション内の値も自動変換することがあります。この場合は、インポート時に「自動検出」の代わりに「テキストとして」を明示的に指定する方法と併用してください。

ADVERTISEMENT

各方法の比較

方法 必要な作業 メリット デメリット
インポート時に列をテキスト指定 インポートダイアログで設定 元ファイルを編集不要、一手順で完了 一度取り込んだ後の修正には使えない
TEXT関数で変換 数式を入力 既存のデータにも適用可能 元データの桁数が不明な場合に調整が必要
CSVファイルを事前編集 テキストエディタで編集 完全に制御可能 ファイルが大きいと手間が多い

まとめ

CSV取り込み時の数値変換ミスは、インポート設定の「テキスト」指定やTEXT関数、CSVファイルの事前編集で解決できます。特に頻繁にCSVを取り込む場合は、インポート時に列書式をテキストに設定する方法が最も効率的です。すでに変換されてしまったデータはTEXT関数で復元できますので、諦めずに試してみてください。次に同じ問題が起きたときは、本記事で紹介した3つの方法の中から、状況に合ったものを選んでください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。