PORTFOLIO

Excel・スプレッドシートの
手作業を自動化

CSV・Excel・Googleスプレッドシートにある繰り返し業務を、「整形・集計・レポート・通知」まで一つの流れに自動化します。Python・Google Apps Scriptを使い、まず対象データで動く最小版を確認してから仕上げます。

Excel / CSV整形 スプレッドシート / GAS 定期集計・レポート Slack・メール通知 API連携

まず対応できること

「毎週、貼り付けた表を直して集計し、グラフを作って連絡する」といった定型作業を、入力から通知まで自動で回る形にします。

CSV・Excel・スプレッドシートのレポート自動化

  • 日付・金額・名称など、表記ゆれのある入力データを整形
  • 週次・月次などの条件で自動集計し、表やグラフを生成
  • 完成したレポートをSlack・メールなどへ通知し、定期実行にも対応

最初にサンプルデータで、整形ルールと出力イメージを確認します。公開制作例では、20行の架空売上データから3週分の集計・グラフ・通知を生成しています。

01 定期監視・差分検出・AI要約の業務パイプライン

定期的に確認が必要な情報を収集し、前回との差分だけを抽出。AIが状況を短く整理し、人が確認できる形で通知します。

課題

複数の公開情報を毎日確認し、前日から何が変わったかを担当者が手作業で比較する運用です。確認に時間がかかるだけでなく、重要な変更を見落としたり、変化がない日に不要な判断コストが発生したりします。

構成

公開データAPI / 許可済み取得 定期収集正規化して保存 差分検出前回値と比較 AI要約変化の整理 検品ルール欠損・矛盾を確認 担当者へ通知確認して判断

収集対象と通知先は案件ごとに差し替え可能です。規約に反する取得は扱わず、AIの出力だけで外部操作を実行しない、人の確認を残す設計です。

検証したこと

  • 定期実行で履歴を蓄積し、変更があった項目だけを抽出
  • 同一項目を基準に比較し、並び順の変化による誤検知を分離
  • 要約の根拠を検出済みの事実に限定し、欠損や矛盾を検品
  • 通知は「変化なし」も含めて短く整理し、判断を急がせない
通知イメージ(架空データ) 本日の確認結果: 要確認の変化は1件です。

・対象A: 在庫あり → 在庫なし
・対象B/C: 前回から変化なし

次の確認: 対象Aの状態が戻るかを次回取得時に再確認します。
※数値・名称はすべてサンプルです。

技術: Python / 構造化データ / 生成AI / スケジューラ / 通知Webhook。掲載内容は匿名化・架空化しており、実在の顧客情報・運用設定・ソースコードは公開していません。

02 問い合わせ対応の半自動化パイプライン

受信した問い合わせを AI が分類・要約し、返信文の下書きまで用意。台帳に記録し、緊急案件だけ通知します。

課題

1日数十件の問い合わせを、担当者が全文を読んで「不具合/料金/解約…」に仕分けし、Excelに手で転記。緊急案件の見落としが起き、返信も毎回ゼロから書いていた。

構成

受信データ メール / フォーム Claude カテゴリ・緊急度・感情 内容の要約 返信文の下書き Excel台帳 緊急度で色分け チャット通知 緊急案件のみ 担当者が確認 → 送信

分類の値は構造化出力で固定。通知先は Webhook を抽象化し Slack / Teams / LINE に差し替え可能。自動送信はせず、担当者が下書きを確認して送る運用。

結果(サンプル10件を処理)

#カテゴリ緊急度要約
1不具合管理画面にログインできず「認証に失敗しました」と表示される
4解約他社乗り換えに伴う解約手続きとデータエクスポート方法
6不具合iPhoneアプリで打刻時に毎回強制終了する
9クレーム先週の不具合報告に返信がなく対応の遅さを指摘
10機能要望有給休暇の申請・承認機能の追加要望

緊急対応が必要な3件を自動検出。あわせて生成された返信下書きの例(#9 クレーム):

生成された返信下書き この度はご返信が遅くなり、多大なご不便とご心配をおかけしておりますこと、心よりお詫び申し上げます。先週いただいた不具合のお問い合わせにつきまして、確実に状況を確認し優先して対応させていただきたく存じます。恐れ入りますが、対象のお問い合わせを特定するため、前回ご連絡いただいた際の受付番号やご登録メールアドレス、発生している不具合の具体的な内容をお知らせいただけますでしょうか。内容を確認のうえ、現在の対応状況と復旧の見通しについて改めて速やかにご案内いたします。

技術: Python / Anthropic API(Claude)/ openpyxl。データはすべて架空。

03 GASスプレッドシート自動化:週次売上レポート

表記ゆれだらけの貼り付けデータを自動で整形し、週次で集計してグラフ付きレポートを生成、チャット通知します。

課題

日次売上が担当者ごとにバラバラの形式でシートに貼られる(日付が 2026/6/1 6月2日 と混在、金額に全角数字 12000、商品名に前後の空白)。これを手で直し、週ごとに合計してグラフを作る作業が毎週発生していた。

構成

貼り付けデータ 表記ゆれあり 整形・集計 日付・金額・商品名を正規化 週×商品で合計 レポートシート+グラフ 自動生成 通知+自動実行 毎週月曜9時

結果(表記の異なる20行を処理)

勤怠経費給与合計
06-01週65,00011,00024,000100,000
06-08週41,00011,00021,00073,000
06-15週48,0008,00025,00081,000

合計売上 254,000 円。整形・集計ロジックは Google 非依存の純粋関数で、手元の Node でも検証可能。

週次売上レポート(自動生成) 0k 25k 50k 75k 100k 100k06-01 73k06-08 81k06-15

技術: Google Apps Script / JavaScript。データはすべて架空。

04 LINE公式ミニCRM:会員証・来店記録・自動応答

店舗のLINE公式を、会員証/QR来店記録/ポイント・特典/FAQ・AI自動応答/未来店リマインド/週次集計まで回す小さなCRMに。GAS+スプレッドシートで動き、管理画面はスプレッドシートそのものです。

課題

LINE公式は「友だちを集める」だけで来店や会員情報が残らず常連化につながらない。会員証・ポイントは別管理で手間、営業時間や料金の同じ質問に毎回スタッフが手で返信。最近来ていない常連にも気づけない。

構成

LINEの発話 登録/来店/質問 GAS Webhook 署名検証→判断ロジック 会員/来店/ポイント/FAQ/AI スプレッドシート台帳 顧客/来店/特典=管理画面 自動応答/会員証 その場で返信 リマインド/週次 トリガーで自動配信

結果(架空データのシミュレーション)

会員ランク来店pt特典
あやかブロンズ55001
けんレギュラー22000
めいレギュラー11000

来店5回で特典を自動進呈。14日来店のない会員は自動でリマインド抽出。オーナーには週次レポート(新規3名/来店8回/付与800pt/特典1件)を自動配信。ロジックはGoogle非依存の純粋関数で、手元のNodeでも全機能を検証可能。

LINE自動応答(来店チェックイン) あやかさん、ご来店ありがとうございます!
来店5回目 / +100pt(合計500pt)/ランク: ブロンズ
🎉 5回ご来店ありがとうございます!特典(ワンドリンク無料券)を進呈します。次回ご利用ください。
FAQで拾えない質問はAI応答(任意) 個室は2部屋(4名/8名)、貸切は10名様から承っております。ご希望日をお知らせいただければ空き状況をお調べします。

技術: Google Apps Script / JavaScript / LINE Messaging API。データはすべて架空。

05 業務システムCRUDサンプル:在庫管理

登録・一覧・更新・削除(CRUD)に加え、CSV一括インポート/エクスポートと入出庫の変更ログを備えた小規模業務システムです。

課題

在庫の増減をExcelで手入力すると、入力ミス・重複コードの見落とし・「いつ・なぜ数量が変わったか」の記録漏れが起きやすい。仕入先から届くCSVも毎回手でコピー&ペーストして転記している。

構成

CLI操作 登録/更新/削除 CSVインポート 重複はスキップ 在庫マスタ バリデーション共通関数 入出庫ログ 種別・差分・理由・日時 CSVエクスポート 帳票・他システム連携用

バリデーション(コード重複・数量マイナス化・型チェック)は登録・更新の全経路で共通の関数を通すため、CLIから入れてもCSVから入れても同じルールが効きます。

結果(初期在庫3件に対しインポート→出庫→入庫→廃番→エクスポートを実行)

codenamequantityunitPricestatus
SKU-001ノートPC 14インチ768,000在庫僅少
SKU-003USB-Cハブ453,200適正
SKU-004モバイルディスプレイ815,800在庫僅少

CSVインポートは1件追加・1件を重複でスキップ。増減はすべて入出庫ログに自動記録されます。

技術: Node.js(外部npm依存なし)。同じCRUD+CSVの構成は勤怠管理・受発注・会員管理のような Access/kintone 代替の小規模システムに転用可能。データはすべて架空。

06 WordPress機能追加サンプル:申込フォーム+管理画面

ページに [wpfs_form] ショートコードを置くだけで申込フォームを追加。送信内容は管理画面の一覧表示とCSVエクスポートまで一式で確認できます。

課題

問い合わせや申込みをメール・外部フォームサービス任せにしていると、WordPress側の管理画面から一覧・検索・CSV出力ができない。既存プラグインは多機能すぎる、または一覧・CSV出力までは対応していないなど、要件とちょうど合わないことが多い。

構成

[wpfs_form] nonce付きフォーム 送信・検証 nonce検証・型/メール形式 チェック NG: エラー表示 同じフォームへ差し戻し OK: 投稿として保存 カスタム投稿タイプ 管理画面 一覧 CSVエクスポート

バリデーションとCSV生成はWordPress関数に依存しない純粋関数として切り出しており、WP環境なしでも単体テストできます。

結果(WordPress 7.0.2・SQLite Database Integrationで実導入して確認)

日時お名前メール内容
2026-07-30 10:12ひろきhiroki@example.jp体験レッスンの空き状況について…
2026-07-29 18:40かなkana@example.jp資料請求をお願いします…
2026-07-28 09:03たくやtakuya@example.jp料金プランの違いについて…

必須項目未入力・メール形式不正での送信は保存されず、元のフォームにエラー表示。管理画面「CSVエクスポート」はBOM付きUTF-8でダウンロードされます。

技術: PHP(WordPressプラグイン)。外部ライブラリ依存なし。データはすべて架空。

その他の対応領域

同じ「収集・整形・判定・通知」の考え方で、次のような自動化も構築できます。

サイト監視・差分検知

複数サイトを定期巡回して変更点を抽出し、AIが要約して通知。競合・在庫・価格の監視などに。

チャットbot・承認導線

LINE公式の会員証・来店記録・自動応答(制作例④)のほか、Telegram等から作業をワンタップ承認できる運用ツールも。

帳票・PDF自動生成

元データを整形して、記入済みのPDF帳票やレポートを自動生成。定型書類の作成をなくす。

進め方

小さく動かして確認しながら、着実に仕上げます。

  1. まず小さく動かす。いただいた要件で最小構成を作り、動くものを早めにお見せして認識を合わせます。
  2. 合意してから本実装。方向性を確認したうえで作り込み、動作確認・修正まで対応します。
  3. テキストで完結。やり取りはメッセージ・チャット中心。返信は24時間以内を基本としています。