Google スプレッドシートの数式・外部参照を xlsx エクスポート+openpyxl で AI に監査させる(開放範囲の切り詰め表示の罠つき)
数万数式・多数の IMPORTRANGE を持つスプレッドシートを読み取り専用で丸ごと解析する手順。DUMMYFUNCTION の復元、開放範囲が xlsx で切り詰め表示される罠をキャッシュ値の再計算で見抜く方法、QUERY の列対応、バインド GAS を直す前に clasp pull する理由まで。
約38.5万トークンの節約 (API料金換算で約580円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「Google スプレッドシートの数式・外部参照を xlsx エクスポート+openpyxl で AI に監査させる(開放範囲の切り詰め表示の罠つき)」は、業務自動化カテゴリのAI指示書(MDファイル)です。数万数式・多数の IMPORTRANGE を持つスプレッドシートを読み取り専用で丸ごと解析する手順。DUMMYFUNCTION の復元、開放範囲が xlsx で切り詰め表示される罠をキャッシュ値の再計算で見抜く方法、QUERY の列対応、バインド GAS を直す前に clasp pull する理由まで。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約38.5万トークン(API料金換算で約580円)・92%のトークンを節約できます。
- カテゴリ
- 業務自動化
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約42万トークン
- この巻物使用時
- 約3.5万トークン
- 節約量
- 約38.5万トークン (約580円)
- 更新日
- 2026-10-02
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/google-xlsx-openpyxl-ai/raw を読み込んで、この指示書どおりに実装して"
中身
Google スプレッドシートの数式・外部参照を AI に監査させる手順(xlsx エクスポート+openpyxl)
使いどころ
- 数十シート・数万数式のスプレッドシートで「この値はどこから来たか」「IMPORTRANGE で何に依存しているか」「集計がズレる原因」を調べたいとき。
- Sheets API や GAS を書かずに、読み取り専用で全数式と計算済み値を一括取得して解析したいとき。
手順
- xlsx で丸ごと取得する。Drive の自然言語読み取り(
read_file_content相当)は大きいシートで途中で切れるので使わない。download_file_content相当でexportMimeType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheetを指定し、base64 を復号して.xlsxに保存する。 - 数式と値を別々に読む。
import openpyxl wf = openpyxl.load_workbook('book.xlsx') # 数式 wv = openpyxl.load_workbook('book.xlsx', data_only=True) # 計算済みキャッシュ値 - IMPORTRANGE などの Google 独自関数は
IFERROR(__xludf.DUMMYFUNCTION("…"),キャッシュ値)に包まれている。DUMMYFUNCTION 内の文字列(""は"にデコード)を取り出すと元の数式が復元できる。スプレッドシート ID は/d/<ID>/または 44 文字の ID で正規化し、ID ごとに「参照元シート/範囲/件数」を集計する。ID 文字列が"…"&"…"で分割連結されている式もあるので、正規表現が 0 件でも諦めず連結を解く。 - 開放範囲は末尾行が切り詰め表示される(最大の罠)。Google 上で
'案件'!$A$2:$Aと書かれた開放範囲は、xlsx では$A$2:$A28のように参照元シートの行数ではなく別の数字で表示されることがある。これを「28 行固定の集計漏れ」と誤判定しやすい。判定は必ず キャッシュ値を自分で再計算して突き合わせる:候補 (a) 切り詰め表示どおりの範囲、(b) 全行、の両方で SUMPRODUCT/SUMIFS を Python で再現し、キャッシュ値と一致する方が真の数式。全行版が全件一致すれば表示上の切り詰めと確定できる。 - 列の対応は QUERY の SELECT 順で決める。
QUERY(IMPORTRANGE(...), "SELECT Col1,Col3,Col11,Col59..Col86")の出力は A=Col1, B=Col3, C=Col11, D=Col59… と詰まるので、元シートの列文字で読まない。年・月の列を取り違えると再計算が全部 0 になる。 - エラー棚卸しは
data_only=Trueの値が#REF!#N/A#VALUE!#DIV/0!#NAME?#ERROR!のセルをシート別に数える。IMPORTRANGE 自体が#REF!の場合は参照先の削除・権限切れを疑い、参照先 ID のメタデータ(存在・所有者・更新日)を直接照会する。 - AI の中間報告は再計算で裏取りする。解析を小さなモデルに委譲した場合、手順 4 の誤判定を複数回繰り返すことがある。影響が最大の主張(「95% が集計漏れ」など)は監督側が必ず手順 4 の突き合わせをしてから採用する。
よくある結論の型
- 「ある人だけ急上昇」→ 評価の累積ラダー(毎月の達成率で ±N を積む)と、1 件の大きな調整値(年間換算を複数月に按分)の組合せ。全員の時系列を並べて個人の話か全体の話かを先に切り分ける。
- 「担当者別の集計が時々ズレる」→ セル単位の行挿入より、バインドされた GAS が全行を読み込み→長時間処理→全列を丸ごと書き戻す設計が原因になりやすい。症状は「実行中の手入力が消える」「末尾に同一行が複数残る」「展開したサブ行に隣の案件の担当が入る」。
- バインド GAS を直す前に 必ず
clasp pullで本番ソースを取る。ローカルの古いミラーからclasp pushすると本番の改修が消える。
検証スクリプトの骨子
# 候補範囲ごとに再計算してキャッシュ値と一致数を比べる
def calc(y, m, name, max_row):
s = 0
for r in range(2, max_row + 1):
if month(r) != m or year(r) != y: continue
for name_col, amt_col in pairs:
if str(cell(r, name_col)).strip() == name: s += num(cell(r, amt_col))
return rounddown(s)
# ok_a = キャッシュ値 == calc(..., 28) の件数, ok_b = calc(..., 全行) の件数
よくある質問
+「Google スプレッドシートの数式・外部参照を xlsx エクスポート+openpyxl で AI に監査させる(開放範囲の切り詰め表示の罠つき)」とは何ですか?
数万数式・多数の IMPORTRANGE を持つスプレッドシートを読み取り専用で丸ごと解析する手順。DUMMYFUNCTION の復元、開放範囲が xlsx で切り詰め表示される罠をキャッシュ値の再計算で見抜く方法、QUERY の列対応、バインド GAS を直す前に clasp pull する理由まで。
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約42万トークンかかりますが、この巻物を使えば約3.5万トークンで済みます。差し引き約38.5万トークン(API料金換算で約580円)・92%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
Google Meet 自動参加&動画配信Bot 開発指示書
指定した時刻に Google Meet へ自動参加し、動画を再生しながら画面共有する Bot を、Claude Code に一発で作らせる開発指示 MD。朝会の定例動画配信・ウェビナーの自動放送に。
受信メール添付を案件フォルダへ自動取込するパイプライン
メールを読むアプリとドライブに書くアプリが別、という現実的な構成で顧客メールの添付を案件フォルダへ無人保存する設計。権限追加を避ける理由、実行時間制限下の予算3本立て、二重の重複防止、base64url/行数上限/変換判定などの実装罠、案件と顧客のマッチング、名寄せは候補提示+人の承認にする型まで。
Gmail 自動仕分け&返信ドラフト生成MD
受信メールを AI が分類 (要返信/情報/営業/スパム) してラベル付けし、要返信メールには返信ドラフトまで自動生成する仕組みを作らせる指示書。DWD (ドメイン全体委任) 設定手順込み。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア