CSVファイルをGoogleスプレッドシートに取り込んだ際、電話番号や郵便番号が自動的に数値に変換されてしまい、先頭のゼロが消えたり、ハイフンが省かれたりするトラブルは非常に多いです。この問題は、スプレッドシートがデータ型を自動判別する仕組みに起因します。本記事では、CSV取り込み時に電話番号や郵便番号を正しく文字列として保持するための具体的な方法を、原因解説とともにお伝えします。
【要点】CSV取り込みで数値変換を防ぐ3つの対策
- インポート時に「テキストとして」を選択: 取り込みダイアログで各列の書式を「テキスト」に指定することで、先頭ゼロやハイフンを保持したまま取り込めます。
- 数式や関数で変換する方法: 既に変換されたデータも、TEXT関数やセルの書式設定で元の形に戻せます。
- CSVファイルを事前に編集する: 元データの電話番号・郵便番号をダブルクォーテーションで囲むか、先頭にアポストロフィを付けることで、自動変換を回避できます。
ADVERTISEMENT
目次
CSV取り込み時に数値変換が起きる仕組み
GoogleスプレッドシートはCSVを取り込む際、各セルの内容を自動的に判別して適切なデータ型に変換します。たとえば「0120-111-222」という電話番号は、数字と記号を含むため「-111222」のような数値と解釈されることがあります。また「00123」のような郵便番号は、先頭ゼロを無視して「123」に変換されます。この自動変換はユーザーにとって便利な面もありますが、電話番号や郵便番号のように文字列として扱いたいデータには不都合です。変換のルールは、数字のみで構成された値は数値に、日付形式は日付に、それ以外は文字列として扱われます。しかし、ハイフンやスラッシュが含まれる場合も、スプレッドシートが解釈可能な形式であれば変換が試みられます。
CSV取り込み時に数値変換を防ぐ具体的な手順
方法1: インポート時に列の書式を「テキスト」に指定する
- CSVをインポートする
Googleスプレッドシートを開き、メニュー「ファイル」→「インポート」をクリックします。アップロードするCSVファイルを選択します。 - インポート設定で「カスタム区切り文字」を選ぶ
「インポート場所」は「新しいシート」または「現在のシートを置き換え」を選び、「区切り文字」は「カンマ」や「タブ」などを選択します。 - 列の書式を「テキスト」に変更する
インポートダイアログで「各列のデータ形式」という項目が表示されます。電話番号や郵便番号が含まれる列を選択し、書式を「プレーンテキスト」に変更します。すべての列をまとめて変更することも可能です。 - 「インポート」ボタンをクリック
設定が終わったら「インポート」をクリックします。先頭ゼロやハイフンが保持された状態でデータが取り込まれます。
方法2: 既に変換されたデータをTEXT関数で戻す
- 変換されたデータを確認する
たとえば、電話番号が「08012345678」のように数値(ハイフンなし)で入っている場合、元の形式を推測します。 - TEXT関数で書式を指定する
隣の列に=TEXT(A1, "000-0000-0000")のような式を入力します。電話番号の桁数に合わせて書式文字列を設定します。郵便番号の場合は=TEXT(B1, "000-0000")などを使用します。 - オートフィルでコピーする
数式を入力したセルの右下をドラッグし、すべての行に適用します。結果を別の列に貼り付ける場合は、値のみコピー(Ctrl+Shift+V)を行います。
方法3: 元CSVファイルを編集してからインポートする
- CSVファイルをテキストエディタで開く
メモ帳や任意のエディタでCSVファイルを開きます。 - 電話番号をダブルクォーテーションで囲む
「”080-1234-5678″」のように、各電話番号や郵便番号をダブルクォーテーションで囲みます。これにより、スプレッドシートは値を文字列として扱います。 - 先頭にアポストロフィを付ける
代わりに「’080-1234-5678」のようにシングルクォーテーションを先頭に付ける方法もあります。ただし、このアポストロフィは表示されず、文字列として認識させるための記号です。 - ファイルを保存してインポートする
編集後、ファイルを保存し、通常の方法で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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】複合グラフで棒と折れ線を同時表示!2軸グラフの作り方
- 【Googleスプレッドシート】FILTER関数で条件に合う行だけ抽出!数式1つで動的な絞り込み
- 【Googleスプレッドシート】フィルタ表示で他の人の表示を変えずに絞り込み!共有時の使い分け
- 【Googleスプレッドシート】重複データを抽出して表示!COUNTIFと条件付き書式の併用
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】ARRAYFORMULAで列全体に数式を一括適用!セル分の入力を不要に
- 【Googleスプレッドシート】データ範囲を動的に伸縮させる!INDIRECTと参照範囲のコツ
- 【Googleスプレッドシート】共有解除と権限の取り消し!アクセスを完全に閉じる手順
