ExcelのCSVがセミコロン区切りになる原因と直し方|小数点記号・桁区切り設定

Excelで「CSV(コンマ区切り)」として保存したはずなのに、出力されたCSVを開くと区切りがセミコロン(;)になってしまう…。Windowsの地域設定(リスト区切り)を直しても改善しない場合、Excel側の小数点記号や「システム区切り文字を使用する」の設定も確認します。仕組みと直し方、Web版やSharePoint経由の切り分けまでまとめます。

目次

Excelで「CSV(コンマ区切り)」なのにセミコロン(;)で出力される症状

Excelの「CSV(コンマ区切り)」や「CSV UTF-8(コンマ区切り)」を選んで書き出したのに、実際のファイルはセミコロン区切りになっている。こうした相談は珍しくありません。特に次のような状況が重なると「設定を変えても直らない」と感じやすいです。

よくある状況起きやすい現象見落としポイント
Windowsの地域設定を触った(リスト区切りを変更)CSVが依然としてセミコロンのままExcel側の小数点記号がカンマのまま
Excelの「区切り設定」を変更した再起動後も区切りが変わらない「システム区切り文字を使用する」の影響、またはVBA/アドインの上書き
SharePoint/OneDrive上のファイルをWebからエクスポートPC側の設定を変えても結果が変わらないWeb(アカウント/サイト)の地域設定が優先されることがある

結論から言うと、「CSVなのにセミコロン」はExcelの仕様として起こり得る現象です。コンマ区切りが必要な場合は、Windowsのリスト区切りと、Excelで実際に使われている小数点記号の両方を確認します。

まず押さえたい:CSVの区切り文字は必ずしもコンマではない

CSVは一般的に「Comma Separated Values(コンマ区切り)」と説明されることが多い一方で、現実には区切り文字がコンマ以外のCSVも広く存在します。理由はシンプルで、数値の表記(小数点)と区切り文字が衝突すると読み取りが難しくなるからです。

たとえば、小数点に「,(カンマ)」を使う地域では数値が1,23のように表記されます。もしCSVの区切りもカンマだと、

  • 「1,23」が1と23の2列なのか
  • 「1.23」の意味で小数点カンマなのか

が紛らわしくなります。そこでExcelは多くの環境で、小数点がカンマのときは区切りをセミコロンにする方向に寄せます。

ここで重要なのは、ExcelのCSV出力が「ファイル形式名に書かれた区切り」だけで決まっていない点です。Excelは内部的に、次のような設定を見て区切りを決めることがあります。

設定項目主な場所CSV出力への影響
リスト区切り(List separator)Windowsの地域設定CSVのフィールド区切りとして使われることがある
小数点記号(Decimal separator)Excelの詳細設定(またはWindows)区切り文字と衝突すると、セミコロンへ切り替わる要因になる
桁区切り(Thousands separator)Excelの詳細設定(またはWindows)1,000のような数値表示で使う記号
システム区切り文字を使用するExcelの詳細設定Windows側を優先するか、Excel独自設定を使うかを左右する

確認する原因:小数点記号がカンマになっていないか

Microsoftは、Excelの小数点記号をカンマにすると、CSV保存時の区切りがセミコロンになると説明しています。例として小数点「,」・桁区切り「.」の設定を示しており、「小数点と桁区切りが同じ記号」の場合に限る現象ではありません。 (Microsoft:テキスト・CSVのインポートとエクスポート)

セミコロン区切り自体がデータの破損を意味するわけではありません。出力先がコンマ区切りを指定している場合に、Excelの数値区切りとWindowsのリスト区切りを合わせて確認してください。

解決策:小数点「.」・桁区切り「,」に戻す

小数点をピリオドで表し、コンマ区切りのCSVを出したい場合は、次の設定を確認します。変更前の値を控え、業務で必要な数値表記と合うかも確かめてください。

項目設定例狙い
小数点記号(Decimal separator).(ピリオド)小数点を明確化し、CSVのコンマと衝突させない
桁区切り(Thousands separator),(カンマ)一般的な「1,000」表記を維持する

これで「コンマを区切りにしても数値と衝突しない」状態になり、CSVがコンマ区切りに戻る可能性が高まります。

手順:Excelデスクトップ版で区切り設定を直す

Excelの画面で確認・変更する流れを、迷いにくい形でまとめます。操作後はExcelの再起動までセットで行ってください。

  1. Excelを起動し、左上の「ファイル」をクリック
  2. 「オプション」を開く
  3. 左メニューから「詳細設定」を選ぶ
  4. 「編集オプション」付近の「システム区切り文字を使用する」の現在の状態を控える。Excel側で一時的に記号を指定する場合はチェックを外す
  5. 小数点記号と桁区切りを次のように設定
    • 小数点記号:.
    • 桁区切り:,
  6. OKで閉じる
  7. Excelをいったん終了し、再起動
  8. 改めて「名前を付けて保存」でCSVを書き出して確認

「システム区切り文字を使用する」をオン/オフ、どちらにすべき?

ここは環境によって最適解が変わります。判断の目安を整理すると次の通りです。

選び方向いているケース注意点
オン(Windows側に合わせる)社内PCで標準設定を統一している/端末間で整合性を取りたいWindowsの地域設定が変わるとExcelも影響を受ける
オフ(Excel独自で指定)Excel側で一時的に数値区切りを指定したい/Windowsを触れないWindowsのリスト区切りも確認し、作業後は元の設定に戻す

まずは原因の切り分けとして、Excel側で小数点「.」・桁区切り「,」が正しく入るか確認するのが効果的です。その上で、社内運用としてWindows側に寄せるのか、Excel単体で固定するのかを決めるとトラブルが減ります。

一時変更した場合は、CSVの確認後に元の値へ戻します。変更前にシステム設定を使っていた場合は「システム区切り文字を使用する」を再びオンにします。Windowsの地域設定を変えると他のアプリにも影響するため、CSVの区切りだけを変えたい場合は後述の変換方法も選択肢です。 (Microsoft:小数点・桁区切りの変更)

Windowsの地域設定も合わせてチェックする(リスト区切り)

Excelが「システム区切り文字を使用する」をオンにしている場合、Windowsの設定がCSV出力に影響します。特に見ておきたいのがリスト区切り(List separator)です。

Windows 10/11では、最短だと次の経路で確認できます(表示名は環境により多少前後します)。

  • コントロール パネル → 地域(Region)
  • 追加設定(Additional settings)
  • 小数点記号、桁区切り記号、リスト区切りを確認
Windows側の項目例Excel/CSVへの影響
小数点記号. または ,数値表記の基準。カンマだとCSV区切りがセミコロン寄りになることがある
桁区切り記号,1,000のような表示に使われる
リスト区切り, または ;CSVのフィールド区切りとして使われることがある

ポイントは、小数点記号とリスト区切りの整合性です。小数点がカンマの環境ではリスト区切りがセミコロンになっていることが多く、これ自体は「間違い」とは限りません。コンマ区切りが必要な運用では、現在の地域設定と出力先が求める形式の違いを確認します。

変更後の確認方法:出力CSVをテキストで開いて区切りを確認する

「Excelで開くと、それっぽく見える」だけでは区切り文字が判断できません。必ずテキストエディタ(メモ帳、VS Code など)でCSVを開き、区切りがどちらかを確認しましょう。

例:コンマ区切りで出力されていると、行は次のように見えます。

id,name,price
1,りんご,120.5
2,みかん,98.0

例:セミコロン区切りだと、次のようになります。

id;name;price
1;りんご;120.5
2;みかん;98.0

数値が120,5のような小数点カンマなら、区切り文字とは別に、取り込み先が求める数値表記も確認してください。区切りだけを変換しても、小数点表記まで自動的に変わるわけではありません。

出力後の列・番号を、文字列のまま確認する

区切りを確認した後は、番号の先頭の0や日本語、メモ欄が意図した列に入っているかも確かめます。ITtripのこわさないCSVはカンマ・タブ・セミコロン区切りを読み、値を数値や日付へ自動変換せずに表示・編集できます。20MB以下のCSV・TSV・TXTを端末内で処理し、登録なしで利用できます。

このツールの「読み方の変更」は区切りの変換ではありません。セミコロンをコンマへ変換したい場合は、下記のPowerShellまたはPythonの手順を使い、出力結果を確認してください。すでに失われた桁は復元できないため、元ファイルを残して作業します。

よくある落とし穴と追加チェック

Windowsの「リスト区切り」をコンマにしたのに直らない

Windowsのリスト区切りだけでなく、Excel側で小数点記号が「,」になっていないかを確認します。「システム区切り文字を使用する」がオフなら、Windows側を変更してもExcel独自の数値区切り設定が残ります。

対策としては、

  • Excelの小数点記号を「.」に戻す
  • Excelを再起動する
  • 同じブックをもう一度CSVとして保存する

までをセットで行うのが確実です。

関数の引数区切りが「,」ではなく「;」になった

Excelでは、関数の引数区切り(=SUM(A1,B1) のカンマ部分)も、地域設定やリスト区切りの影響を受けます。小数点がカンマの地域では、引数区切りがセミコロンになるのはよくある挙動です。

今回のCSV問題を直すために区切り設定を変更した結果、関数入力の見え方が変わることがあります。これは「壊れた」のではなく、Excelがその環境の区切り規則に合わせただけです。運用として「どちらが正しいか」を決め、社内PCで統一するのが理想です。

VBAやアドインが区切り設定を上書きしている

意外と見落とされるのが、VBAマクロやアドインがExcel起動時に区切り設定を変更しているケースです。たとえば、次のようなコードはExcelの区切りを強制的に変更できます。

Application.UseSystemSeparators = False
Application.DecimalSeparator = ","
Application.ThousandsSeparator = "."

もし「毎回直しても戻る」「特定のブックを開いたときだけおかしくなる」なら、

  • PERSONAL.XLSB(個人用マクロブック)
  • アドイン(COMアドイン含む)
  • ブックのOpenイベント(ThisWorkbook)

あたりを疑ってください。原因の切り分けとして、セーフモードでExcelを起動してCSVを書き出してみるのも有効です(セーフモードでは一部アドインが無効になります)。

CSVを取り込む側(他システム)が「コンマ固定」を前提にしている

Excelの設定を直しても、組織や取引先のシステムが「CSV=コンマ」と決め打ちしていることがあります。この場合、Excelの仕様に合わせるのではなく、相手側の仕様に合わせて確実にコンマで出す運用が必要です。

ただし、単純に「; を , に置換」すると、データ中の文字列や引用符の扱いで事故が起きます。たとえば、メモ欄に「A;B」や「A,B」が入っていると、置換や分割が破綻します。強制変換するなら、データを正しくパースできるツール(PowerShell/Pythonなど)を使うのが安全です。

Excel for the web(ブラウザー)やSharePoint経由のエクスポートで区切りが変わる場合

SharePointやOneDrive上のファイルをWebから「CSVとしてダウンロード」する場合、PC側の設定ではなく、

  • Microsoft 365アカウントの言語・地域
  • SharePointサイトの地域設定
  • ブラウザー上のExcelのロケール

などが影響して区切りが決まることがあります。つまり、ローカルPCでいくら設定を直しても、Web経由のエクスポートはセミコロンのまま…ということが起こり得ます。

出力元区切りに影響しやすい設定切り分けのコツ
Excelデスクトップ(PC)Excel詳細設定/Windows地域設定同じファイルをローカル保存して「名前を付けて保存」で確認
Excel for the webM365アカウントの地域設定/ブラウザーの言語「デスクトップアプリで開く」で出力結果が変わるか比較
SharePointのエクスポート機能サイトの地域設定/列の書式サイト設定を変更できない場合はデスクトップ出力に寄せる

現場での最短ルートは、一度ローカルに保存してExcelデスクトップからCSVを書き出すことです。これでコンマ区切りになるなら、原因はWeb側の地域設定に寄っている可能性が高いと判断できます。

どうしても「コンマ固定」でCSVを出したいときの代替案

「Excelの設定は社内標準で変えられない」「Webの地域設定も触れない」「でも納品はコンマ固定」といったケースもあります。そんなときは、Excelの出力結果に頼らず、変換工程を作るのが現実的です。

PowerShellで区切りを指定して書き出す

すでにセミコロン区切りのCSVがある場合、PowerShellで一度読み込んでからコンマ区切りで出力できます。次の例は、1行目が列名のUTF-8ファイルを入力する前提です。

# 例:入力はセミコロン区切り、出力はコンマ区切り
Import-Csv -Path "input.csv" -Delimiter ";" -Encoding UTF8 | Export-Csv -Path "output.csv" -Delimiter "," -NoTypeInformation -Encoding UTF8

入力がShift_JIS(WindowsのCP932)の場合は、Import-Csv側の文字コード指定を実ファイルに合わせて変えます。PowerShell 6.2以降なら -Encoding 932を指定できます。旧版では対応する指定方法を確認してください。出力例はUTF-8なので、取り込み先が必要とする文字コード・BOMの有無も確認します。引用符などの出力形式は元ファイルと変わる場合があるため、日本語と番号を含むサンプルで確かめてください。 (Microsoft:Import-Csvの文字コード指定)

Python(pandas)で区切りを変換する

データ量が多い、または変換処理を自動化したい場合はPythonも有効です。

import pandas as pd

df = pd.read_csv(
    "input.csv", sep=";", dtype=str, keep_default_na=False, encoding="utf-8"
)
df.to_csv("output.csv", index=False, sep=",", encoding="utf-8")

この例は1行目が列名のUTF-8ファイルを想定しています。dtype=strで番号などを文字列として読み、keep_default_na=Falseで「NA」「NULL」などを欠損値に置き換えないようにします。指定しないと「00123」が「123」に変わるなど、区切り以外の値も変わることがあります。入力がShift_JISなら文字コードも実ファイルに合わせてください。 (pandas.read_csv公式リファレンス)

出力時の引用符や改行などの表現は元ファイルと変わる場合があります。変換後は列数と代表的な値を確認し、Excelで再び開く場合も番号列をテキストとして取り込んでください。

まとめ:CSVの区切りは小数点記号とリスト区切りを確認する

Excelで「CSV(コンマ区切り)」を選んでもセミコロンになってしまうとき、まず疑うべきはWindowsのリスト区切りだけではありません。特に、

  • Excelの小数点記号がカンマになっていないか
  • Excelの「システム区切り文字を使用する」がどうなっているか
  • Web/SharePoint経由ならWeb側の地域設定が優先されていないか

を順に潰すと、最短で原因に到達できます。設定を整えた上で、必ずテキストでCSVを開いて区切りを確認し、目的のシステムで正しく取り込めるところまでチェックしてください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次