【Excel】CSV保存で失われるものと、文字化け・先頭ゼロを確認する手順

【Excel】CSV保存で失われるものと、文字化け・先頭ゼロを確認する手順
🛡️ 超解決

ExcelブックをCSVに保存すると、表のデータを他のシステムへ渡しやすくなります。一方、CSVはExcelのブックそのものを保存する形式ではありません。数式、複数シート、書式を残す元ファイルと、受け渡し用のCSVを分け、保存した文字と相手側で読み込まれた値の両方を確認することが重要です。

ADVERTISEMENT

CSVに残るのは、選んだシートの文字と値

CSVは一般にカンマで項目を区切るテキストファイルです。Excelから保存すると、現在のワークシートの文字や値が出力されます。複数のシート、グラフ、セルの色、罫線、列幅、条件付き書式などを、Excelと同じ状態では保持できません。

通常は数式そのものではなく計算結果を出力します。例えば金額のセルが「=B2*C2」で240を表示していれば、出力されるのは240という値です。ただし、シートを数式表示にしていると式の文字列が出力される場合があります。いずれもCSVがExcelの計算モデルを保存することにはならず、再計算や参照関係の維持は期待できません。

保存した時点で別に保管した元のxlsxが消えるわけではありません。しかし、CSVだけを残して元ブックを閉じれば、CSVから元の式や書式、別シートを復元することはできません。元ファイルを残す手順を、保存前に決めておきましょう。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

元ブックを保存し、出力するシートを選ぶ

最初に作業中のブックを通常のExcel形式で保存します。マクロを含む場合は、必要なマクロを保持するxlsmなど、元の用途に合う形式を維持します。その後、CSVへ出したいシートを選び、[ファイル]の[名前を付けて保存]などから別名で保存します。

例えば「売上原本.xlsx」に明細・集計・説明の3シートがあり、明細を選んで「売上取込.csv」を保存すると、CSVの対象は明細です。ブック全体が三つのタブ付きで渡るわけではありません。他のシートも必要なら、それぞれを別のCSVとして出力するか、相手がExcel形式を受け付けるか確認します。

明細・集計・説明の3シートを持つ売上原本.xlsxから、明細だけを売上取込.csvへ出力する例。ID00123、数量2、単価120、金額240。元ブックは別に保持する。
CSVは対象シートのデータを渡すファイルです。数式や他のシートを残す原本は別に保管します。

ファイル名だけでなく保存フォルダーと拡張子を確認し、元ブックとは区別します。「現在のシートだけを保存する」「一部の機能が失われる」といった警告が出たら、対象と元ファイルの保管を確認してから続行します。分からないまま常に[はい]を押す操作にはしません。

表示形式は残らなくても、出力文字に影響する

CSVに書式の設定は保存されませんが、Excelが出力する文字や値には、セルの表示状態が関係します。小数を2桁まで表示している数値、日付、通貨記号、数値に付けた単位などは、保存前の表示とCSVの中身を見比べてください。「書式が消えるので生の数値が必ず出る」とは限りません。

受入仕様が数量の数値だけを要求するなら、出力用シートでは「2個」ではなく2を出すようにします。単位は見出しや別列へ分け、数値列は単位なしの表示形式に整えます。金額の小数桁、日付の年月日の順序、空欄と0の扱いも、取込先の仕様に合わせます。

表示形式の変更は本来の値を変更しないため、元ブックで細かい桁が残っていても、出力文字では丸めた見た目になることがあります。精度が必要な列は出力前に必要な桁を表示し、保存後のテキストを照合します。見た目の桁数だけで値を確定する業務では、元データ側の丸めルールも別途確認してください。

文字コードと区切り文字は、受取先に合わせる

日本語を含むCSVでは、受入先が求める文字コードを先に調べます。UTF-8指定なら、利用中のExcelで[CSV UTF-8]を選びます。通常の[CSV]の文字コードを、どのパソコンでも必ず同じだと決めつけないでください。システムの地域設定や選んだ保存形式が関係します。

拡張子が.csvでも、実際の区切り文字には地域設定などが影響することがあります。取込先がカンマ区切りを要求するなら、出力ファイルでもカンマになっているか確認します。文字化けは文字コード、全データが一列に入る問題は区切り文字というように、症状を分けると調べやすくなります。

項目にカンマや改行が含まれる場合は引用符で囲むなどの処理が必要です。次の例では「東京,営業部」が一つの項目です。文字列の中のカンマまで一括置換したり、すべての引用符を削除したりすると、列の区切りを壊します。出力・取込ソフトのCSV処理に任せ、列数で結果を確認します。

ID,所属,数量
00123,"東京,営業部",2

先頭の0や長い番号は、再読込時の変換にも注意する

CSVの中に00123と記録されていても、Excelでダブルクリックして開くと、数値と解釈されて123になることがあります。保存時に消えたのか、読み込んだときに変換されたのかを区別するため、まずテキストエディターなどで実際の文字を確認します。開き直した画面だけでCSVの内容を判断しません。

Excelへ検査用に取り込む場合は、[データ]の[テキストまたはCSVから]を使い、文字コードと区切り文字のプレビューを確認します。IDや電話番号などは、読み込み前の変換処理で列のデータ型をテキストに指定します。Power Queryに自動追加された型変更の段階で数値化されている場合は、その段階を見直して元の文字から取り込み直します。

16桁以上の識別番号を数値にすると、Excelの数値精度の範囲により末尾の桁が失われます。後から表示形式を[文字列]へ変えても、失われた桁は戻りません。元CSVに正しい文字が残っていればテキストとして再取込し、元ブックの時点で失われていたら元の資料へ戻って修正します。

保存後は、件数と代表値を照合する

受取先の仕様に従って、見出しの有無と順番、データ件数、列数、必須項目を確認します。IDの先頭0、長い番号、日本語、カンマ入りの名称、日付、小数、空欄を含む行を抜き出すと、典型的な変換ミスを見つけやすくなります。全件を目視する代わりに、金額合計などの集計値も照合します。

例えばID00123、数量2、単価120なら金額は240です。この小さな例で、数量が「2個」になっていないか、IDが123になっていないか、金額が数式の文字列でないかを見ます。合計が同じでもIDの桁や日付の月日が違えば、正しい取込とはいえません。

最終的な確認は受取先での試験取込です。Excelで問題なく読めても、受取先がBOM、空欄、改行、列型などに独自の条件を持つ場合があります。本番への重複登録を避けるため、テスト環境やプレビュー機能を使えるかを確認し、検査のために同じ売上を何度も登録しないようにします。

直すときは元ブックから出し直す

CSVの式や書式がなくなった場合は、CSVをExcel形式で保存し直しても元には戻りません。保管した原本へ戻って訂正し、CSVを再出力します。CSV側で修正した内容があるなら原本との違いを照合し、どちらを正本にするかを決めます。以後の編集をCSVだけで続けないことが、再発防止になります。

原本を残していなかった場合は、利用環境に応じてバックアップやバージョン履歴の有無を確認します。復元できるとは限らないため、まず現在のファイルを別名で保全し、上書きを重ねないでください。

公式資料:他形式へ移らない書式・機能、テキスト・CSVの入出力。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】