Claude Code × Power Query でExcelデータ自動取得・変換・更新を完全自動化する

Claude Code×pandasでPower Query相当のETL処理を自動化する方法を解説。複数CSV・Excel・APIデータの統合・変換・クレンジングが10倍速で処理完了。定期実行パイプライン構築まで対応。コード付き。

この記事をシェア:
目次 クリックで開く

📅 2025年10月 | ⏱ 読了約8分 | 🏷 Excel・Claude Code・業務自動化

毎日の手動データ取込・クレンジング作業を Power Query + Python で完全自動化。複数ファイル結合・型変換・不要列削除まで一括処理。

Power Query データ統合デモ
📊 Claude Code 生成デモ

Power Query データ統合デモ

↑ Claude Code が自動生成した実際の成果物サンプル。このクオリティが数分で完成します。

Power Query自動化の全体像

📌 この記事で実現できること

  • Power Query→Python ETL自動化の完全自動化を実現するPythonスクリプトを5ステップで解説
  • 「複雑な変換ステップのブラックボックス化」という課題を根本から解消する
  • Claude Codeへの自然言語指示だけでスクリプトを生成できる
  • 月・週・日単位の定期実行で完全無人化を実現する方法も紹介

以下のステップを順番に実行することで、今日から業務自動化を始められます。コピーして使えるコードと、Claude Codeへの指示文をセットで解説します。

Power Query は Excel の強力なデータ変換エンジンです。Claude Code を使えば、複数CSVの結合・データ型変換・不要列削除・ピボット展開を自然言語で指示し、openpyxl や pandas で完全自動化できます。毎朝の手動作業を夜間バッチに置き換えます。

ステップ1:複数CSVを自動結合して1シートにまとめる

💬 Claude Code へのプロンプトフォルダ内の全CSVファイルを読み込んで1つのExcelシートに縦結合するスクリプトを作成して。
ファイル名を「出所」列として追加して
import pandas as pd
from pathlib import Path
import openpyxl

folder = Path("./data_csv")
dfs = []

for csv_file in sorted(folder.glob("*.csv")):
    df = pd.read_csv(csv_file, encoding="utf-8-sig")
    df["出所ファイル"] = csv_file.name
    dfs.append(df)

combined = pd.concat(dfs, ignore_index=True)

# Excelに出力
with pd.ExcelWriter("結合データ.xlsx", engine="openpyxl") as writer:
    combined.to_excel(writer, sheet_name="結合データ", index=False)

print(f"結合完了: {len(dfs)}ファイル / {len(combined)}行")
✅ 実行結果

12ファイル・3,800行を自動結合。手動コピペ(1時間30分)がスクリプト実行12秒に。

😫 Before ─ よくある課題

毎月20〜30個のCSVを手でコピペして結合し、不整合データを目視確認。作業に丸1日かかっていた。

✅ After ─ Claude Code で解決

Power QueryをPythonで自動化することで、CSVの結合・クレンジング・集計を全自動化。月次作業が1日→10分に。

ステップ2:データクレンジングを自動化する

import pandas as pd

df = pd.read_excel("結合データ.xlsx")

# 空白・重複・異常値を自動除去
df = df.dropna(subset=["顧客ID", "売上金額"])     # 必須列のNaN除去
df = df.drop_duplicates(subset=["注文ID"])         # 重複行除去
df = df[df["売上金額"] > 0]                        # 売上が0以下を除去

# 文字列クレンジング
df["顧客名"] = df["顧客名"].str.strip()            # 前後空白除去
df["電話番号"] = df["電話番号"].str.replace("-", "").str.replace(" ", "")

# 型変換
df["注文日"] = pd.to_datetime(df["注文日"], format="%Y/%m/%d", errors="coerce")
df["売上金額"] = pd.to_numeric(df["売上金額"], errors="coerce")

df.to_excel("クレンジング済.xlsx", index=False)
print(f"クレンジング完了: {len(df)}行")
✅ 実行結果

空白・重複・型エラーを自動除去。データ品質チェック(2時間)がゼロに。

ステップ3:Webから最新データを自動取得

import requests, pandas as pd, openpyxl
from datetime import datetime

# 例: 為替レートAPIから最新レートを取得
url = "https://api.exchangerate-api.com/v4/latest/JPY"
resp = requests.get(url, timeout=10)
data = resp.json()

rates = [{"通貨": k, "JPY換算": 1/v if v else None, "取得日時": datetime.now()}
         for k, v in data["rates"].items() if k in ["USD","EUR","GBP","CNY","KRW"]]

df = pd.DataFrame(rates)
df["JPY換算"] = df["JPY換算"].round(2)

wb = openpyxl.load_workbook("為替管理.xlsx")
ws = wb["レート履歴"]
for _, row in df.iterrows():
    ws.append(list(row.values))

wb.save("為替管理.xlsx")
print("最新レートをExcelに追記完了")
✅ 実行結果

毎朝9時に最新為替レートを自動取得・追記。手動更新作業が完全不要に。

ステップ4:ピボット展開を自動化する

import pandas as pd

df = pd.read_excel("売上明細.xlsx")

# ピボットテーブル:月×部門×商品カテゴリ
pivot = df.pivot_table(
    values="売上金額",
    index=["年月", "部門"],
    columns="商品カテゴリ",
    aggfunc="sum",
    fill_value=0
).reset_index()

# 小計行を追加
pivot["合計"] = pivot.select_dtypes("number").sum(axis=1)

with pd.ExcelWriter("ピボット集計.xlsx", engine="openpyxl") as w:
    pivot.to_excel(w, sheet_name="月次集計", index=False)
    df.to_excel(w, sheet_name="元データ", index=False)

print("ピボット展開完了")
✅ 実行結果

月次ピボット集計が自動生成。毎月末の集計作業(3時間)がスクリプト実行20秒に。

ステップ5:差分検出で変更履歴を自動管理

import pandas as pd

old = pd.read_excel("先月データ.xlsx")
new = pd.read_excel("今月データ.xlsx")

# 共通キーで差分検出
merged = old.merge(new, on="顧客ID", suffixes=("_旧","_新"), how="outer", indicator=True)

added   = merged[merged["_merge"] == "right_only"][["顧客ID","顧客名_新"]]
removed = merged[merged["_merge"] == "left_only"][["顧客ID","顧客名_旧"]]
changed = merged[(merged["_merge"] == "both") &
                 (merged["売上金額_旧"] != merged["売上金額_新"])]

with pd.ExcelWriter("差分レポート.xlsx", engine="openpyxl") as w:
    added.to_excel(w,   sheet_name="新規追加", index=False)
    removed.to_excel(w, sheet_name="削除済み", index=False)
    changed.to_excel(w, sheet_name="変更あり", index=False)

print(f"追加:{len(added)} 削除:{len(removed)} 変更:{len(changed)}")
✅ 実行結果

先月比の差分を自動抽出。変更確認作業(2時間)がスクリプト実行30秒に。

📊 自動化で得られる効果
⏱ 作業時間(Before) CSV結合・クレンジング:丸1日/月
⚡ 自動化後(After) スクリプト実行:10分
処理時間 8時間→10分(95%削減)
作業品質 目視チェック不要・ルール自動適用
再現性 スクリプト1本で毎月同じ品質

このシステムが解決する課題

データ変換・クレンジングをPythonで自動化。この自動化が特に効果的な場面と、解決できる課題を整理します。

❌ よくある課題

  • Power Queryの設定が複雑で、変換手順をチームメンバーに引き継ぎにくい
  • 大量データ(100万行以上)をPower Queryで処理すると動作が重くなる
  • CSVやAPIなど異なるデータソースを統合するETL処理の設計が難しい
  • Power Queryの変換手順をバージョン管理・文書化する方法がわからない

実務での活用シナリオ

業種・部門 活用方法と効果
社内DWH構築 複数システムのCSVエクスポートをPythonで統合・変換。毎朝自動実行するETLパイプラインを構築。
営業レポート自動化 SFA・基幹システム・Excelの3ソースを結合して営業レポートを毎週自動生成。
在庫分析 倉庫システムからのCSVと販売実績Excelを結合。在庫回転率・ABC分析を自動計算。
勤怠・給与集計 タイムレコーダーCSVと残業申請Excelを突合し、給与計算のための集計データを自動生成。
マーケティング分析 GA4エクスポート・CRM・広告プラットフォームのデータを統合してROAS分析を自動化。

導入前後の効果比較

😫 Before ─ 従来の課題

Power Queryで手動設定した変換ステップが多すぎてブラックボックス化。ビジネスロジックが変わるたびにステップを全部やり直していた。100万行のデータ処理は1時間以上かかることも。

✅ After ─ Claude Code で解決

pandasでデータ変換ロジックをコードで明示的に記述。処理内容が可読・再利用可能になり、変更が1行修正で完了。100万行のデータも数分で処理完了。

導入のポイントと注意事項

💡 スムーズに運用するためのコツ

  • pandas.read_csv()のdtype引数で読み込み時に型を指定すると、後の変換処理でのエラーを大幅に減らせる
  • データクレンジングの処理は関数化して単体テストを書くことで、バグの早期発見と品質担保が実現できる
  • 大規模データ(100万行以上)はpolarsライブラリを使うとpandasより10〜50倍高速に処理できる
  • ETLパイプラインはAirflowやPrefectで管理するとスケジュール実行・失敗時の再実行・ログ管理が容易になる

よくある質問(FAQ)

Q. Power QueryとPythonはどちらが良いですか?
A. Power QueryはExcelユーザーが使いやすいGUIが強み。Pythonは大規模データ・複雑な変換ロジック・自動化に優れています。Claude Codeがあれば、Pythonを書けない人でも自然言語でETL処理を実装できます。
Q. Power QueryのM言語をPythonに変換できますか?
A. Claude Codeに「このPower QueryのM言語コードと同じ処理をPandasで書いて」と依頼するだけで変換できます。
Q. リアルタイムデータ処理にも対応できますか?
A. バッチ処理(定期実行)はCronやタスクスケジューラで対応できます。真のリアルタイム処理にはKafkaやApache Flinkなどのストリーミング基盤が必要ですが、多くの業務では分単位のバッチ処理で十分です。

まとめ

✅ 複数CSVの自動結合・縦積み
✅ 空白・重複・型エラーのクレンジング自動化
✅ Web APIからのリアルタイムデータ取得
✅ ピボット展開と差分検出を完全自動化

どんな現場で使われているか:活用シナリオ

対象者 導入前の課題 Claude Code導入後
データ担当 複数システムのCSVを毎月ダウンロード・統合してExcelに整形 スクリプトが自動取得・結合・クレンジングしてExcelに出力
経営管理担当 Power Queryが複雑になりすぎてメンテナンスできない PythonスクリプトでPower Queryと同等以上の変換処理を可読性高く実装
IT担当 Power QueryのM言語習得コストが高くてチームに展開できない Pythonベースの処理でチームメンバーが理解・修正できる透明性の高い実装

実装で押さえるべき重要ポイント

  • 1
    pandasでPower Queryの主要操作を代替:merge(結合)・groupby(集計)・pivot_table(ピボット)・str.replace(テキスト変換)でPower Queryの主要操作の大半をPythonで再現できます。
  • 2
    データ変換ステップをログに記録:各変換ステップの入力件数・出力件数・除外件数をログ出力することで、データ品質の追跡と問題発生時のデバッグが格段に容易になります。
  • 3
    データソースの変更に対応できる設計にする:CSVのカラム名・フォーマットが変わることを想定して、設定ファイルでカラムマッピングを管理する設計にすることで、スクリプトを書き直さずに対応できます。

ビジネスインパクト

月次自動化
データ整備の繰り返し作業
M言語不要
Power Query習得コスト
チーム共有可能
コードの可読性・保守性

この記事のまとめ

  • ✅ PythonでPower Query相当のデータ変換・結合・クレンジングを自動化できる
  • ✅ 複数ソースのデータを自動取得・統合してExcelに出力できる
  • ✅ Power QueryのM言語より可読性が高くメンテナンスしやすい実装ができる
  • ✅ 月次のデータ整備作業を完全自動化して分析業務に集中できる


関連記事


制作実績サンプル

このクオリティの資料が、あなたの業務でも作れます

Aurant Technologies が実際に制作したコンサルティング資料(全82枚)のサンプルです。Claude Code × AI自動化により、従来の1/5のコスト・時間で同等品質を実現します。

タイトルスライド

タイトル・ダーク背景
3カラム分析

3カラム比較・分析
AI活用フロー

AI活用フロー図解
Before/After

Before/After比較
RFPテンプレート

構造化コンテンツ
全10枚を
見る

御社のテーマでこのレベルの資料を作成できます
制作費・納期・自動化プランは無料相談でご確認いただけます

📊 サンプル全10枚を見る →

Claude Codeで業務自動化を始めよう

プログラミング不要。自然言語で指示するだけで、あなたの業務に合ったスクリプトを自動生成します。

無料で試してみる →

AT
aurant technologies 編集

上場企業からスタートアップまで、数多くのデータ分析基盤構築・AI導入プロジェクトを主導。単なる技術提供にとどまらず、MA/CRM(Salesforce, Hubspot, kintone, LINE)導入によるマーケティング最適化やバックオフィス業務の自動化など、常に「事業数値(売上・利益)」に直結する改善実績多数。

この記事が役に立ったらシェア: