ExcelやCSVで詰まったときに使うツール(文字化けと表の変換)

表計算まわりで手が止まる場面は、原因が2つに分かれます。 ファイルが読めない(文字化け)か、形式が合わない(表の受け渡し)かです。

症状で振り分ける

症状使うツール
CSVをExcelで開いたら「縺」「繧」だらけになったMojiRescue
相手から届いたテキストが読めない文字に化けているMojiRescue
ファイルの文字コードや改行コードを揃えたいMojiRescue
Excelの表をそのままMarkdownに貼りたいMarkdown表 相互変換
Markdownの表をスプレッドシートに戻したいMarkdown表 相互変換

2本ともブラウザの中で処理し、入力したデータを外部へ送信しません。 顧客名簿や社内の集計データのように、オンラインの変換サービスに貼りづらいファイルを想定した作りにしています。

文字化けを直す(MojiRescue)

MojiRescue は、化けたテキストを元に戻す側のツールです。

ExcelでCSVが化けるのは、多くの場合ファイルがUTF-8なのにExcel側がShift_JISとして読もうとするためです。 BOMを付けるか、Shift_JISに変換するかで解決します。 原因と手順はCSVをExcelで開くと文字化けする原因と、確実に直す手順、BOMを付けるべき場面と外すべき場面はBOMとは何か——付けるべき場合と、外すべき場合で扱っています。

化け方の見た目からも、どの組み合わせで食い違ったのか見当がつきます。 MojiRescueの復元画面でも、この4パターンを見分けています。

化け方の例起きていること文字列から戻せるか
「縺」「繧」が並ぶUTF-8をShift_JISで開いた一部は戻る
「テスト」のような記号混じりUTF-8をLatin-1(Windows-1252)で開いた条件付きで戻る
「・ニ・ケ・ネ」のような半角カナ混じりEUC-JPをShift_JISで開いた一部は戻る
「�」が大量に出るShift_JISやEUC-JPをUTF-8で開いた戻らない

表の「文字列から戻せるか」は、化けた文字列をコピーして貼り付けた場合の話です。 これとは別に、変換の途中で情報そのものが落ちている場合(「?????」のように潰れているもの)は、元の文字が残っていないため復元できません。 元のファイルが残っているなら、どのパターンでもファイルから変換し直すのが確実です。 戻せるものと戻せないものの線引きは、直せる文字化けと、直せない文字化けで実例を並べています。

ツールを使わずにExcelだけで開く

元のCSVファイルが手元にあるなら、Excelの読み込み機能だけで、化けずに開くこともできます。 Microsoft 365など、新しめのExcelでの手順です。

  1. 空のブックを開き、「データ」タブの「テキストまたは CSV から」を選ぶ
  2. 開きたいCSVファイルを選ぶ
  3. プレビュー画面の「元のファイル」で「65001: Unicode (UTF-8)」を選ぶ
  4. プレビューの文字が読めていることを確かめて「読み込み」を押す

ダブルクリックで開いたときとの違いは、文字コードをこちらで指定できるところです。 Shift_JISのファイルなら、手順3で「932: 日本語 (シフト JIS)」を選びます。

気をつけたいのは、先頭の0です。 この読み込み方では、Excelが列ごとに数値や日付かどうかを自動で判定するため、郵便番号や電話番号の「0」が落ちることがあります。 プレビュー画面の「データ型検出」を「データ型を検出しない」にしておくと、すべての列が文字列のまま読み込まれます。

読み込んだ表をCSVで保存し直すときは、ファイルの種類で「CSV UTF-8 (コンマ区切り)」を選ぶと、UTF-8のまま保存されます。 ファイル自体をExcelでそのまま開ける形にしておきたい場合は、上のMojiRescueのCSV変換を使います。

表を受け渡す(Markdown表 相互変換)

Markdown表 相互変換ツール は、表計算とMarkdownの間を行き来する側です。

日本語の表をMarkdownにすると、ソース上でパイプの位置がずれて見えることがあります。 全角文字と半角文字で表示幅が違うためで、文字数を数えるだけでは揃いません。 文字幅を計算して桁を揃える機能を入れてあるので、等幅フォントで見たときに縦線が並びます。

なお、これは見た目の問題だけです。 桁が揃っていなくてもMarkdownとしては正しく表示されるので、そこは好みで選ぶところになります。 ずれて見える理由と、揃えるときの文字幅の数え方は日本語を含むMarkdownの表で、桁がずれて見える理由に、コピーした表を貼るときの注意はExcelやスプレッドシートの表をMarkdownに貼る方法にあります。

表を入れた文書をどこで書いて、どの形で渡すかは、Markdownで書いた文書を人に渡すまでに使うツールにまとめています。