AIでExcel・スプレッドシート作業を自動化する ── CSV集計からレポート生成まで
「毎月おなじCSV(Excelで開けるデータ形式)ファイルを開いて、おなじ手順で集計して、おなじフォーマットでレポートを作る…」──こんな繰り返し作業に時間を取られていませんか?
Excel・スプレッドシートの定型作業は、AIと自動化の組み合わせがいちばん効果を発揮する分野です。手作業で30分〜1時間かかっていた集計が、一度スクリプト(自動処理のプログラム)を作ってしまえば数秒で完了します。
つまり、「毎月おなじ作業をくり返す」から「ボタンひとつで完了」に変わるということです。
この記事では、CSV(Excelで開けるデータ形式)の集計からレポート生成まで、5つの実務シナリオを具体的なプロンプト(AIへの指示文)とコード付きで解説します。
なぜスプレッドシート作業はAI自動化にぴったりなのか
スプレッドシート作業がAI向きな理由
かんたんに言うと、「やることが決まっていて、毎回同じことをやっていて、しかも時間がかかる」──この3条件が揃った作業は、自動化の効果がいちばん大きいということです。
時間比較:手作業 vs AI自動化
| 作業内容 | 手作業 | AI自動化 | 削減率 |
|---|---|---|---|
| CSVファイル3つの統合・重複除去 | 30分 | 10秒 | 99% |
| 月次売上レポート作成 | 1時間 | 30秒 | 99% |
| データ形式の変換・クリーニング | 45分 | 15秒 | 99% |
| ピボットテーブル(集計表)作成 | 20分 | 10秒 | 99% |
| グラフ付きレポート生成 | 1.5時間 | 1分 | 99% |
最初だけ、ちょっと準備時間がかかります
上の表はスクリプト(自動処理プログラム)の「実行時間」の比較です。初回はAIにスクリプトを書いてもらう時間(5〜15分程度)がかかりますが、2回目以降はワンクリックで実行できます。毎月やる作業なら、初月から十分にモトが取れます。
5つの実務シナリオ
シナリオ1:CSVファイルの統合と重複除去
複数のCSV(Excelで開けるデータ形式)ファイルを一つにまとめて、重複している行を削除するタスクです。部署ごとにバラバラにエクスポートされたデータの統合など、実務ではしょっちゅう発生します。
Claudeへのプロンプト(指示文)例:
以下の要件でPython(データ処理が得意なプログラミング言語)スクリプトを書いてください:
目的:複数のCSVファイルを1つにまとめて、重複を消す
入力:
- data/ フォルダ内のすべてのCSVファイル
- 各ファイルは同じ列構成(社員ID, 名前, 部署, メール)
処理:
1. data/ 内の全CSVを読み込む
2. 1つのデータにまとめる
3. 社員IDが重複する行を削除(最初の行だけ残す)
4. 結果をmerged_output.csvとして保存
出力:
- 統合前の合計行数、重複件数、統合後の行数を画面に表示
AIが作ってくれるコードの例:
import pandas as pd
import glob
# data/フォルダ内の全CSVファイルを取得
csv_files = glob.glob("data/*.csv")
print(f"対象ファイル数: {len(csv_files)}")
# 全ファイルを読み込み・統合
dfs = [pd.read_csv(f) for f in csv_files]
combined = pd.concat(dfs, ignore_index=True)
print(f"統合前の合計行数: {len(combined)}")
# 社員IDで重複除去
before_count = len(combined)
combined = combined.drop_duplicates(subset=["社員ID"], keep="first")
duplicates = before_count - len(combined)
print(f"重複件数: {duplicates}")
print(f"統合後の行数: {len(combined)}")
# 保存
combined.to_csv("merged_output.csv", index=False, encoding="utf-8-sig")
print("merged_output.csv に保存しました")
かんたんに言うと、「フォルダにCSVファイルを入れてスクリプトを実行するだけで、まとめて重複も消してくれる」ということです。
シナリオ2:カテゴリ別集計と前年比較
売上データをカテゴリ別に集計して、去年の同じ月と比較するレポートを作るタスクです。
Claudeへのプロンプト例:
以下の要件でPythonスクリプトを書いてください:
入力ファイル:
- sales_2026.csv(列:日付, 商品カテゴリ, 商品名, 売上金額, 数量)
- sales_2025.csv(同じ列構成)
処理:
1. 両方の年のデータを月別・カテゴリ別に集計
2. 2026年4月のカテゴリ別売上を出す
3. 2025年4月との前年比を計算
4. 前年比の高い順に並べる
出力:
- カテゴリ別の集計表(CSV)
- 前年比の増減を画面に表示
プロンプトのコツ:列名を書いておく
CSVの列名(ヘッダー)をプロンプトに書いておくと、AIが正確なコードを作ってくれます。列名がわからない場合は「このCSVの最初の5行を表示するコードを書いて」から始めると、スムーズです。
シナリオ3:データ形式の変換とクリーニング
実際の仕事では、データが「そのまま使えない形」で届くことがよくあります。全角数字が混ざっている、日付の書き方がバラバラ、余計な空白が入っている…。こうした「お掃除作業」は地味に時間がかかります。
Claudeへのプロンプト例:
以下のデータクリーニング(お掃除)処理を行うPythonスクリプトを書いてください:
入力:raw_data.csv
クリーニング処理:
1. 全角数字 → 半角数字に変換
2. 電話番号のハイフン統一(全角ハイフン → 半角ハイフン)
3. 日付列を YYYY-MM-DD 形式に統一(今は "2026/4/3", "R8.4.3" などバラバラ)
4. 前後の余計な空白を除去
5. 空の行を削除
6. メールアドレスの形式チェック(おかしいものにフラグ)
出力:
- cleaned_data.csv(きれいにしたデータ)
- cleaning_report.txt(何件変換したか・何件エラーだったかのまとめ)
つまり、「汚いデータを渡すだけで、きれいに整形されたデータが返ってくる」ということです。
シナリオ4:ピボットテーブルの作成
Excelのピボットテーブル(クロス集計表)機能をPython(データ処理が得意なプログラミング言語)で再現します。一度スクリプトを作れば、毎月のデータ更新がワンクリックで済みます。
Claudeへのプロンプト例:
sales_data.csv からピボットテーブル(クロス集計表)を作成するPythonスクリプトを書いてください。
入力の列:取引日, 地域, 商品カテゴリ, 売上金額, 数量
作成する集計表:
- 行:地域
- 列:商品カテゴリ
- 値:売上金額の合計
- 小計・総計を含む
出力:pivot_result.xlsx(Excelファイル)
AIが作ってくれるコードの例:
import pandas as pd
# データ読み込み
df = pd.read_csv("sales_data.csv")
# ピボットテーブル(クロス集計表)作成
pivot = pd.pivot_table(
df,
values="売上金額",
index="地域",
columns="商品カテゴリ",
aggfunc="sum",
margins=True, # 小計・総計を追加
margins_name="合計"
)
# Excel出力
pivot.to_excel("pivot_result.xlsx")
print("ピボットテーブルを pivot_result.xlsx に保存しました")
print(pivot)
シナリオ5:グラフ付きレポートの自動生成
集計結果をグラフにして、Excelレポートに埋め込むところまで全自動化します。
Claudeへのプロンプト例:
月次売上レポートをグラフ付きExcelファイルとして作るPythonスクリプトを書いてください。
入力:monthly_sales.csv(列:年月, カテゴリ, 売上, 前年売上)
レポートに含めるもの:
1. シート1「サマリー」:月別の売上推移折れ線グラフ + データ表
2. シート2「カテゴリ別」:カテゴリ別の売上割合の円グラフ + データ表
3. シート3「前年比較」:今年 vs 去年の棒グラフ + 増減率の表
グラフのスタイル:
- 日本語フォント対応
- 見やすい配色(ビジネス向け)
- タイトル付き
日本語のグラフを作るときの注意点
matplotlibというグラフ描画ライブラリで日本語のグラフを作ると、文字が□□(豆腐)になることがあります。macOSなら「Hiragino Sans」、Windowsなら「MS Gothic」というフォントを指定する必要があります。AIに「macOS環境です」と伝えれば、適切なフォント設定を含めたコードを作ってくれます。
Claude Codeでスクリプトを作る手順
実際にClaude Codeを使ってスプレッドシート自動化スクリプトを作る手順を、順番に説明します。プログラミングの知識がなくても大丈夫です。
Claude Codeでの作成ステップ
claudeと入力して起動つまり、「データを置いて、やりたいことを日本語で伝えるだけ」でスクリプトが完成するということです。
主要ツール・ライブラリの紹介
Python(データ処理が得意なプログラミング言語)でスプレッドシートを操作する際に使う主要ライブラリ(便利な道具箱のようなもの)を紹介します。
pandas
- CSVやExcelの読み書き
- フィルタ・集計・結合
- ピボットテーブル
- 日付や時系列データの処理
pip install pandasopenpyxl
- セルの書式設定(色・太字など)
- グラフの埋め込み
- 複数シートの操作
- 条件付き書式
pip install openpyxlmatplotlib
- 折れ線・棒・円グラフ
- 見た目の細かいカスタマイズ
- 画像ファイルとして保存
- Excelへの埋め込みも可能
pip install matplotlibこれらのライブラリは、Claude Codeに「pandasを使ってCSVを集計して」と伝えれば、自動的にインストールしてコードを書いてくれます。自分でインストール方法を調べる必要はありません。
Excel(.xlsx) vs CSV:どう使い分ける?
CSVを選ぶケース
- データの受け渡しが目的のとき
- システム同士の連携
- 大量データ(100万行を超えるもの)
- バージョン管理をしたいとき
- 処理速度を優先したいとき
Excelを選ぶケース
- 人に見せるレポートのとき
- 色・書式・グラフが必要なとき
- 複数シートの構成
- 関数やマクロを含むとき
- プログラミングを知らない人との共有
実務での使い分けのコツ
処理の途中はCSV、最終的に人に見せるものはExcel──これが基本です。つまり、「CSVで処理して→Excelでレポートに仕上げる」という流れがいちばん効率的ということです。
応用:定期実行で完全自動化する
スクリプトを一度作ったら、「毎月1日に自動実行」のように定期実行を設定すれば、完全自動化の完成です。
macOS の場合(launchd)
macOSでは launchd という仕組みで定期実行を設定できます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.monthly-report</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/python3</string>
<string>/path/to/generate_report.py</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Day</key>
<integer>1</integer>
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
これで毎月1日の朝9:00にレポート生成スクリプトが自動的に実行されます。つまり、「毎月1日にパソコンを開いたら、レポートがもう出来ている」という状態になります。
Windows の場合(タスクスケジューラ)
Windowsではタスクスケジューラという機能で、同じように定期実行ができます。
schtasks /create /tn "MonthlyReport" /tr "python C:\scripts\generate_report.py" /sc monthly /d 1 /st 09:00
Linux の場合(cron)
# 毎月1日 9:00 に実行
0 9 1 * * /usr/bin/python3 /path/to/generate_report.py
定期実行を設定する前に
定期実行をセットする前に、スクリプトを何度か手動で動かして、エラーが出ないことを確認しましょう。また、ファイルのパス(場所)は省略せずフルパス(絶対パス)で書いてください。かんたんに言うと、「テスト済みの完璧なスクリプトだけを自動実行にかける」のが安全です。
段階的に始めよう
自動化は「1つの作業から」始める
よくある質問(FAQ)
Q: Python(プログラミング言語)をまったく触ったことがないのですが、大丈夫ですか?
A: 大丈夫です。Claude Codeに「Pythonをまったく使ったことがない初心者です」と先に伝えておけば、Python のインストール方法やライブラリ(便利ツール)の入れ方から丁寧に教えてくれます。コードを自分で書く必要はなく、AIが書いたコードを実行するだけでOKです。
Q: Excelのマクロ(VBA)との違いは何ですか?
A: VBAはExcelの中だけで完結しますが、Python+pandasはExcel以外のデータ(CSV、データベース、Web上のAPI)とも連携できるのが大きな違いです。また、AIにコードを書いてもらえるので、VBAの知識がなくても高度な処理ができます。すでにVBAマクロで問題なく動いている業務を、わざわざ置き換える必要はありません。
Q: 数十万行の大量データでも処理できますか?
A: pandasは数百万行のデータでも問題なく処理できます。ただし、メモリに収まりきらないほどの超大量データ(数千万行〜)の場合は、分割して読み込む「チャンク処理」や、DuckDBのような軽量データベースの利用がおすすめです。Claude Codeに相談すれば、データ量に合った最適な方法を提案してくれます。
Q: スクリプトが動かなくなったらどうすればいい?
A: エラーメッセージをそのままClaude Codeにコピペして「このエラーを直して」と伝えてください。多くの場合、ファイルの場所が変わった・列名が変わった・ライブラリのバージョンが上がった、のどれかが原因です。AIが原因を特定して修正してくれます。つまり、「エラーが出ても自分で解決する必要はない」ということです。
Q: Googleスプレッドシートでも使えますか?
A: はい、使えます。Google Sheets API(Googleスプレッドシートとプログラムをつなぐ窓口)を使えば、Pythonからスプレッドシートの読み書きができます。gspread というライブラリが便利です。Claude Codeに「Googleスプレッドシートからデータを読み込む処理を書いて」とお願いすれば、API(データの窓口)の設定方法から案内してくれます。
まとめ
スプレッドシート自動化の始め方
プログラミングの知識は不要です。AIに「やりたいこと」を伝えるだけで、スクリプトの作成から実行まで完了します。まずはひとつの作業から始めてみましょう。