[{"data":1,"prerenderedAt":396},["ShallowReactive",2],{"content-/2026-04-06-diary":3,"all-pages-for-dir":394,"og-image-/2026-04-06-diary":395},{"id":4,"title":5,"body":6,"category":374,"description":375,"extension":376,"meta":377,"navigation":378,"path":379,"project_name":380,"published":381,"publishedAt":382,"seo":383,"stem":384,"tags":385,"todo":392,"updatedAt":392,"__hash__":393},"pages/2026-04/2026-04-06/diary-2026-04-06.md","2026年4月6日の開発日記 - CF精算表SUMIFS化とXブックマーク分析基盤",{"type":7,"value":8,"toc":360},"minimark",[9,14,18,22,27,30,36,58,69,72,76,79,83,100,108,110,114,117,121,135,143,145,149,152,154,157,322,324,327,341,343,346],[10,11,13],"h1",{"id":12},"_2026年4月6日の開発日記","2026年4月6日の開発日記",[15,16,17],"p",{},"年次推移表のExcelをクリックしても数式バーに数値しか出てこない問題を起点に、SUMIFS化→共通モジュール化→5論点横展開と一気に走った。並行してXブックマークのSheets連携とSQLite分析基盤を立ち上げ、agent-browserの評価も完了した。",[19,20,21],"h2",{"id":21},"今日やったこと",[23,24,26],"h3",{"id":25},"_1-cf精算表パイプラインの大幅強化","1. CF精算表パイプラインの大幅強化",[15,28,29],{},"Pythonで計算した値をExcelにベタ打ちしていた年次推移表を、SUMIFS数式で仕訳シートを直接参照する形に全面置換した。",[15,31,32],{},[33,34,35],"strong",{},"主な成果:",[37,38,39,43,46,49,52,55],"ul",{},[40,41,42],"li",{},"301借入金に営業経費（顧問料+家賃）と現金売上/仕入を追加",[40,44,45],{},"年次推移表のFrom/To行+SUMIFS数式化（仕訳シート参照）",[40,47,48],{},"補助科目統合（2シート→1シート、アンダースコア命名）",[40,50,51],{},"xlsx_helpers.py共通モジュール化（Phase 1&2完了）",[40,53,54],{},"303固定資産にパソコン（工具器具備品）追加",[40,56,57],{},"全5論点（301-305）への横展開、全てcheck=0通過",[15,59,60,63,64],{},[33,61,62],{},"詳細:"," ",[65,66,68],"a",{"href":67},"/cf-worksheet-sumifs-modularization","CF精算表パイプラインの大幅強化",[70,71],"hr",{},[23,73,75],{"id":74},"_2-chrome拡張機能-xブックマーク分析基盤の構築","2. Chrome拡張機能: Xブックマーク分析基盤の構築",[15,77,78],{},"X Bookmark ExporterにOAuth2認証とSheets API連携を追加し、8,251件のブックマークをSQLiteに取り込んで年度別分析した。",[15,80,81],{},[33,82,35],{},[37,84,85,88,91,94,97],{},[40,86,87],{},"OAuth2認証のclient ID問題を解決（拡張機能IDとの1対1紐付け）",[40,89,90],{},"screen_name取得パス修正（X APIの構造変更: legacy→core）",[40,92,93],{},"Sheets APIバッチ書き込み（500行ずつ）",[40,95,96],{},"UI改善（自動タブ起動/閉じ、拡張機能名変更）",[40,98,99],{},"ブックマーク8,251件→SQLite DB構築、年度別分析レポート9年分生成",[15,101,102,63,104],{},[33,103,62],{},[65,105,107],{"href":106},"/x-bookmark-exporter-oauth-sheets","Xブックマーク分析基盤の構築",[70,109],{},[23,111,113],{"id":112},"_3-agent-browser評価とセットアップ","3. agent-browser評価とセットアップ",[15,115,116],{},"Vercel製agent-browserの動作確認とChrome拡張機能との連携を検証した。",[15,118,119],{},[33,120,35],{},[37,122,123,126,129,132],{},[40,124,125],{},"基本機能（プロファイル取得、ページ操作、スクリーンショット）の動作確認",[40,127,128],{},"Chrome拡張のchrome.storage.local制限を発見→defaults.jsonフォールバック試行→断念",[40,130,131],{},"Chrome DevTools MCPとの使い分け基準を整理",[40,133,134],{},"グローバルインストールと公開ドキュメント作成",[15,136,137,63,139],{},[33,138,62],{},[65,140,142],{"href":141},"/agent-browser-evaluation-chrome-extension","agent-browser評価とセットアップ",[70,144],{},[23,146,148],{"id":147},"_4-edinet-api-企業業績レポート","4. EDINET API: 企業業績レポート",[15,150,151],{},"古河電気工業の四半期業績レポートを作成。EDINET APIキーが無効化されていたため、Web検索で代替してデータを取得。",[70,153],{},[19,155,156],{"id":156},"今日の試行錯誤",[158,159,160,182],"table",{},[161,162,163],"thead",{},[164,165,166,170,173,176,179],"tr",{},[167,168,169],"th",{},"#",[167,171,172],{},"テーマ",[167,174,175],{},"試したこと",[167,177,178],{},"結果",[167,180,181],{},"気づき",[183,184,185,203,220,237,254,271,288,305],"tbody",{},[164,186,187,191,194,197,200],{},[188,189,190],"td",{},"1",[188,192,193],{},"SUMIFS全ゼロ",[188,195,196],{},"日付をテキストで書き出し",[188,198,199],{},"不一致",[188,201,202],{},"date型に変換が必要",[164,204,205,208,211,214,217],{},[188,206,207],{},"2",[188,209,210],{},"貸借逆",[188,212,213],{},"'normal'キーで判定",[188,215,216],{},"KeyError",[188,218,219],{},"実際は'sign'キー",[164,221,222,225,228,231,234],{},[188,223,224],{},"3",[188,226,227],{},"補助科目二重計上",[188,229,230],{},"親+子を両方カウント",[188,232,233],{},"check≠0",[188,235,236],{},"is_childフラグで親スキップ",[164,238,239,242,245,248,251],{},[188,240,241],{},"4",[188,243,244],{},"auto_fit幅異常",[188,246,247],{},"数式文字列を計測",[188,249,250],{},"幅78",[188,252,253],{},"数式除外+最大幅制限",[164,255,256,259,262,265,268],{},[188,257,258],{},"5",[188,260,261],{},"OAuth2 bad client id",[188,263,264],{},"会計ソフトAのIDを流用",[188,266,267],{},"失敗",[188,269,270],{},"拡張機能IDと1対1紐付け",[164,272,273,276,279,282,285],{},[188,274,275],{},"6",[188,277,278],{},"screen_name空",[188,280,281],{},"legacy参照",[188,283,284],{},"空",[188,286,287],{},"X APIがcoreに移動",[164,289,290,293,296,299,302],{},[188,291,292],{},"7",[188,294,295],{},"chrome.storage.local",[188,297,298],{},"agent-browserでMF拡張",[188,300,301],{},"データ消失",[188,303,304],{},"セッション間で保持されない",[164,306,307,310,313,316,319],{},[188,308,309],{},"8",[188,311,312],{},"ゼロ在庫モデル",[188,314,315],{},"Codex指摘で変更",[188,317,318],{},"check=0",[188,320,321],{},"在庫バッファは原価ズレの原因",[70,323],{},[19,325,326],{"id":326},"今日の学び",[37,328,329,332,335,338],{},[40,330,331],{},"SUMIFSの日付比較はセルの型まで揃えないと静かに0を返す。エラーにならないから発見が遅れる",[40,333,334],{},"Chrome拡張のOAuth2はclient IDと拡張機能IDが1対1。開発中にIDが変わると全部つなぎ直し",[40,336,337],{},"共通モジュール化は「まず動かす→全論点で検証→リファクタリング」の順が安全",[40,339,340],{},"agent-browserはクリーンセッション向き、ログイン済み操作にはChrome DevTools MCP",[70,342],{},[19,344,345],{"id":345},"関連記事",[37,347,348,352,356],{},[40,349,350],{},[65,351,68],{"href":67},[40,353,354],{},[65,355,107],{"href":106},[40,357,358],{},[65,359,142],{"href":141},{"title":361,"searchDepth":362,"depth":362,"links":363},"",2,[364,371,372,373],{"id":21,"depth":362,"text":21,"children":365},[366,368,369,370],{"id":25,"depth":367,"text":26},3,{"id":74,"depth":367,"text":75},{"id":112,"depth":367,"text":113},{"id":147,"depth":367,"text":148},{"id":156,"depth":362,"text":156},{"id":326,"depth":362,"text":326},{"id":345,"depth":362,"text":345},"diary","CF精算表パイプラインのSUMIFS全面置換・共通モジュール化・5論点横展開、Xブックマーク8,251件のSheets連携とSQLite分析基盤構築、agent-browserの評価とセットアップを進めた一日","md",{},true,"/2026-04-06-diary","daily-log",false,"2026-04-06T00:00:00.000Z",{"title":5,"description":375},"2026-04/2026-04-06/diary-2026-04-06",[386,387,388,389,390,391],"日記","CF精算表","SUMIFS","Chrome拡張機能","agent-browser","SQLite",null,"4UkbFoMRAQ5BabeB6E_QYv4Dq-e1e91r-nyZ_6yon8U",[],"https://log.eurekapu.com/favicon.svg",1775511575142]