明細のCSV
文字化けするCSVを家計簿に
ネットバンキングやカード会社のサイトでは、入出金明細をCSVでダウンロードできます。ところがExcelで開くと日本語が記号の列になったり、日付と金額が計算に使えなかったりします。
銀行のCSVの中身
CSVは表をそのままテキストにしたもので、1行が1件の取引です。共通の規格はなく、列の名前も並びも銀行ごとに違います。よく見るのは次の列です。
- 日付: 取引日、日付、年月日。カードの明細なら利用日
- 金額: 入金と出金、預入と払出のように2列に分かれるものと、符号付きの1列にまとめたもの
- 内容: 摘要、お取り扱い内容。カードの明細なら利用店名
- 残高: 取引のあとの残高。家計簿では使いません
表の前に、口座番号や期間を書いた数行が付くファイルもあります(ゆうちょ銀行やビューカードなど)。新しい取引が先頭に来るファイルもあれば、古い順のファイルもあります。
文字化けの原因はShift-JIS
日本の銀行のCSVは、ほとんどがShift-JIS、正確にはWindowsで広げられたCP932で書かれています。UTF-8を前提にしたソフトで開くと、漢字もカナも意味のない記号に置き換わります。これが文字化けです。
円記号にも癖があります。Shift-JISでは“¥”とバックスラッシュが同じバイトなので、\7,000と書かれた金額は、別のソフトでは記号付きの文字列に見えます。
文字コードを指定して開き直せば、Excelでも日本語は読めるようになります。ただ、それで家計簿に使えるわけではありません。
そろっていない日付と金額
文字が読めても、書き方はファイルごとに違います。日付だけでも、実際の明細には次の形があります。
2023/4/22のようなスラッシュ区切り20230407のような区切りのない8桁2026年01月05日のような年月日- 和暦:
R8.1.5、令和8年1月6日、H31.04.30 - 全角の数字で書かれた日付
金額も同じです。△440 や ▲860 はマイナスの意味で、500円 のように後ろに円が付くもの、¥1,980 や \7,000 のように前に円記号が付くもの、全角の数字で書かれたものがあります。
表計算ソフトはこうした値を数字ではなく文字として扱うので、合計も月ごとの集計もできません。Excelで家計簿を付けていると、関数で一つずつ直す作業が毎月のように出てきます。
明細を家計簿に入れる方法
家計簿サービスの多くは口座連携で、銀行から明細を自動で取り寄せます。手間はかかりませんが、ネットバンキングのログイン情報や取引の履歴を、そのサービスに預けることになります。
Excelで自分で整える方法なら、データは手元に残ります。代わりに、上の文字化けと形式の違いを毎回片づける必要があります。
3つ目は、ダウンロードしたCSVを自分のMacの中で読み込むアプリです。ファイルはどこにも送られず、形式の違いはアプリが引き受けます。
Parendiでの読み込み
ParendiはMac用の家計簿・資産管理アプリで、日本の銀行とカード会社のCSVをそのまま読み込みます。Shift-JISかUTF-8かは自分で判別し、上に挙げた日付と金額の形式も読み取ります。ファイルは“読み込む”(⇧⌘I)で選ぶか、ウインドウにドロップします。
列は見出しの行から判別します。次の銀行とカード会社のファイルで確かめてあり、どれも“列の割り当て”なしでプレビューまで進みました。
- 銀行: ゆうちょ銀行、三菱UFJ銀行、三井住友銀行、楽天銀行、住信SBIネット銀行、ソニー銀行、SBI新生銀行
- カード: 楽天カード、PayPayカード、ビューカード
ほかの銀行でも、見出しが似ていれば読めることはありますが、確かめてはいません。見出しの行がないファイル(一部のカードの明細)は“列の割り当て”が開き、列を一度だけ手で選びます。その割り当ては保存され、次から同じ形式に使われます。年のない日付(JAバンクの4月30日のような形)は、まだ読めません。読めなかったときは、エラーのダイアログの“マスクしたコピーを送信…”で、口座番号を伏せて金額を変えたコピーをサポートに送れます。
カードの明細は、プレビューで口座を“新しいカードの口座…”か既存のカードの口座にすると、利用額が支出として入ります。読み込んだ取引にはカテゴリが付き、Apple Intelligenceに対応したMacでは、日本語の内容からデバイス上で推定します。Apple Intelligenceがなくても読み込みはそのまま使え、推定がないだけです。同じ月をもう一度読み込んでも、口座ごとに照合して新しい取引だけを取り込みます。
ヨーロッパの口座ならcamt.053
スイスやドイツ、オーストリアの銀行では、明細をcamt.053というXMLで書き出せます。ISO 20022の規格で、口座のIBANと開始・終了の残高がファイルに入っています。Parendiはcamt.053も列の割り当てなしで読み込み、残高が取引と合わなければ知らせます。1日の途中の報告であるcamt.052と、個別の通知であるcamt.054は明細ではないので受け付けません。日本の銀行の明細はほとんどがCSVなので、日本の口座には上のCSVを使います。
どの形式でも、ファイルはMacから出ません。Parendiは銀行とつながっておらず、ログイン情報も知らず、どのサーバとも通信しません。Parendiについて詳しく、または対応ファイル形式の一覧をご覧ください。