レシート家計簿のデータをエクセルで集計する方法
CSVの文字化けと品目行の扱い
レシートで記録した家計簿を、エクセルで自由に集計したいという場面があります。ただしCSVをそのまま開くと文字化けしたり、品目ごとに行が分かれていて合計が合わなかったりします。原因と対処を順に説明します。
アプリで記録してエクセルで分析する、という分け方
家計簿をエクセルで管理したい理由は、たいてい次のどれかです。
- 自分の見たい形でグラフを作りたい
- 複数年分をまとめて比べたい
- 確定申告や経費精算のために表の形で残したい
- アプリの画面にない切り口(品目別・店別)で集計したい
一方で、エクセル単体ではレシートの読み取りができません。入力はすべて手作業になります。
そこで現実的なのが「記録はアプリ、分析はエクセル」という分け方です。レシートを撮って記録する部分だけアプリに任せ、貯まったデータをCSVで書き出してエクセルで開きます。
CSVとは何か
CSV は「カンマで区切っただけのテキストファイル」です。表計算ソフトのファイル形式ではないので、特定のアプリに縛られません。エクセルでも Google スプレッドシートでも、Numbers でも開けます。
中身はこのような単純な文字列です。
"日付","店名","金額","カテゴリ","品目名","品目価格"
"2026-08-20","スーパーA","3280","食費","豚こま切れ","498"
"2026-08-20","スーパーA","","食費","牛乳","215"
アプリの中にあるデータを外に持ち出せる形式なので、アプリを乗り換えるときにもデータが手元に残ります。
文字化けする原因と直し方
CSV をエクセルで開いたとき、日本語が「繧ケ繝シ繝代・」のように壊れることがあります。これはファイルが壊れているのではなく、文字コードの判別に失敗しているだけです。
なぜ起きるか
日本語を表す方式には主に UTF-8 と Shift_JIS の2種類があります。近年のアプリはほぼ UTF-8 で書き出しますが、エクセルは日本語版の既定で Shift_JIS として開こうとします。UTF-8 のファイルを Shift_JIS として解釈すると、文字が別の文字に化けます。
書き出す側で防ぐ方法
ファイルの先頭に BOM と呼ばれる短い印を入れておくと、エクセルが「これは UTF-8 だ」と判断して正しく開きます。目に見えない数バイトなので、他のソフトで開いても邪魔になりません。BOM 付きで書き出すアプリなら、ダブルクリックするだけで文字化けしません。
手元で直す方法
BOM が無いファイルを受け取った場合は、ダブルクリックせずに読み込みます。
- エクセルで空のブックを開く
- 「データ」タブ →「テキストまたはCSVから」
- ファイルを選び、「元のファイル」で「65001: Unicode (UTF-8)」を指定
- プレビューで日本語が正しく見えることを確認して読み込む
Google スプレッドシートは UTF-8 を既定で扱うため、そのままインポートすれば化けません。エクセルで開けない場合の逃げ道として覚えておくと便利です。
品目ごとに行が分かれるデータの扱い
ここが最もつまずきやすい部分です。
レシートには1回の買い物に複数の品目が含まれます。これを表にすると、1回の買い物が複数行になります。
| 日付 | 店名 | 金額 | 品目名 | 品目価格 |
|---|---|---|---|---|
| 2026-08-20 | スーパーA | 3280 | 豚こま切れ | 498 |
| 2026-08-20 | スーパーA | (空) | 牛乳 | 215 |
| 2026-08-20 | スーパーA | (空) | トマト | 158 |
金額の列が先頭行にだけ入り、残りが空になっている点に注目してください。これは手抜きではなく、意図的な形です。
もし3行すべてに 3280 が入っていたら、金額の列を合計したときに 3280 × 3 = 9,840円 になってしまいます。20品目のレシートなら20倍です。先頭行にだけ入れておけば、そのまま SUM で合計しても正しい金額が出ます。
逆に品目価格の列は全行に入っています。こちらを合計すると「品目の合計」になり、レシートの合計金額とは一致しません(値引き・ポイント利用・税の扱いで差が出ます)。用途に応じて、どちらの列を使うか決めてください。
ピボットテーブルで集計する
エクセルに移す最大の利点がこれです。アプリの画面には無い切り口で集計できます。
店別の支出を出す
- データ全体を選択 →「挿入」→「ピボットテーブル」
- 行に「店名」、値に「金額」の合計を置く
「どの店にいくら使っているか」が出ます。同じスーパーでも、まとめ買いの店と寄り道の店で金額が大きく違うことに気づけます。
品目別の支出を出す
行に「品目名」、値に「品目価格」の合計を置きます。3か月分ためると、何にお金を使っているかが品目の粒度で見えます。「牛乳に月3,000円」といった具体的な数字は、カテゴリ別のグラフからは出てきません。
月別の推移を出す
日付の列を選んで「グループ化」→「月」を指定すると、月単位でまとめられます。行に月、値に金額の合計を置けば推移表になります。
カケイシピの場合
カケイシピは記録した全期間の支出をCSVで書き出せます(月を絞らず、これまでの全件です)。列は次の9つです。
日付/店名/支店名/金額/カテゴリ/メモ/品目名/品目価格/OCRエンジン
この記事で説明したとおり、BOM 付きで書き出しているのでエクセルでダブルクリックしても文字化けしません。品目は行を分けて出力し、金額は先頭行にだけ入れてあるので、そのまま合計しても二重計上になりません。
店名と支店名を分けているのは、同じチェーンの別店舗を区別して集計できるようにするためです。ピボットテーブルで店名だけを使えばチェーン単位、支店名まで使えば店舗単位で見られます。
よくある質問
CSVを書き出したあと、アプリのデータは消えますか
消えません。書き出しはコピーを作る操作で、アプリ側のデータはそのまま残ります。何度書き出しても問題ありません。
エクセルで編集したデータをアプリに戻せますか
一般に、CSVの取り込みに対応している家計簿アプリは多くありません。エクセル側は分析用の写しと考えて、記録の正本はアプリ側に置くのが混乱しない使い方です。
スマホしか持っていない場合はどうすればよいですか
書き出したCSVをクラウドストレージやメールで送り、PCで開くことになります。スマホの表計算アプリでも開けますが、ピボットテーブルの操作は画面の広いPCのほうが快適です。
まとめ
- エクセル単体ではレシートを読み取れない。記録はアプリ、分析はエクセルと分けるのが現実的
- 文字化けは文字コードの判別失敗。BOM付きなら起きず、無い場合は「データ」タブからUTF-8を指定して読み込む
- 品目ごとに行が分かれるデータは、金額が先頭行にだけ入っているかを確認する。全行に入っていると合計が品目数倍になる
- ピボットテーブルで店別・品目別・月別の集計ができる。品目別はアプリの画面では見られない切り口