[{"data":1,"prerenderedAt":272},["ShallowReactive",2],{"content-/excel-course-filter-exercise-narration":3,"all-pages-for-dir":249,"related-/excel-course-filter-exercise-narration":250,"og-image-/excel-course-filter-exercise-narration":271},{"id":4,"title":5,"body":6,"category":228,"concepts":229,"description":230,"extension":231,"meta":232,"navigation":233,"ogImage":229,"path":234,"project_name":235,"published":236,"publishedAt":237,"seo":238,"source":239,"stem":240,"tags":241,"todo":229,"unpublished":236,"updatedAt":229,"__hash__":248},"pages/2026-10/2026-10-02/excel-course-filter-exercise-narration.md","Excel講座にFILTER関数の章と演習を追加した日：Ctrl+[で構成を見直し、ナレーションは合成音声を手本に自分で録る",{"type":7,"value":8,"toc":218},"minimark",[9,14,18,21,26,29,32,35,38,41,57,60,64,67,70,73,76,84,88,95,102,109,123,134,137,144,147,150,167,174,178,181,188,191,204,207,215],[10,11,13],"h1",{"id":12},"excel講座にfilter関数の章と演習を追加した日","Excel講座にFILTER関数の章と演習を追加した日",[15,16,17],"p",{},"Excel 講座に FILTER 関数の章を足すと決めたのは、Ctrl+[ を押したときにどこへ飛ぶか、という観点からだった。\nただ、講座の再現動画を作るエンジンは、その時点で FILTER のスピルに対応していなかった。",[15,19,20],{},"その前の朝には、別のリポジトリでナレーションの声の扱いを決め直していた。\n合成音声は下書きにして、本番は自分の声で録る。",[22,23,25],"h2",{"id":24},"合成音声と自分の声の分担朝","合成音声と自分の声の分担（朝）",[15,27,28],{},"9月30日に作った計画を探してもらうところから始めた。\nirodori-tts で合成している台本の読み上げを、自分の声の録音に差し替える画面を作る計画が、どこかにあったはずだった。\n見つかった計画書は、eurekapu-nuxt4 ではなく sns-shorts リポジトリにあった（ビューアーで読みを直し、本人の声で録り直せるようにする計画）。\n確認用のページも 3200 番台だと思っていたが、sns-shorts のビューアーは 3400 番だった。",[15,30,31],{},"試しに1文だけ自分で録り、差し込んで作り直してもらった。\n録った声は拍1に入り、話速の倍率は 0.89、グリッド検査も OK だった。\nマイクや部屋が違う声を1文だけ混ぜると、どうしても浮いて聞こえる。\nただ、測ってもらうと音量そのものは揃っていて、違って聞こえる原因は別のところにありそうだった。",[15,33,34],{},"今回入れた声は、合成音声とそれほど違わなかった。\nそれでも考えが変わった。\n60秒以内の動画なら一旦は合成音声で作るが、本番に出すときは全部自分で録り直してもいい。\n自分のトーンで感情や起伏を入れたほうが聞きやすいし、1分の全文を録り直すなら録音の環境も揃う。",[15,36,37],{},"そこで前提を「合成の声は下書き、投稿する版は1本の全文を自分の声で録り直す」に切り替え、計画書を含む3か所に書き込んでもらった。\n全文を録り直すパターンなら irodori-tts のほうになるのか、とここで納得した。\nExcel 講座も同じ前提だった気がして確かめてもらうと、9/25 の時点で「本番は全部自分で読む」と決めてあった。",[15,39,40],{},"役割分担も決めた。",[42,43,44,48,51,54],"ul",{},[45,46,47],"li",{},"irodori-tts の合成は今までどおりで、変えない",[45,49,50],{},"下書きの声では、テンポと話している内容を自分が確かめる",[45,52,53],{},"録るときは、BPM 120 で出た声を聞いて「これぐらいの速さで話せばいいのね」と手本にする",[45,55,56],{},"今回決めたルールを使うのは、読みを修正するときだけ",[15,58,59],{},"途中で「dev サーバーが止まっていたので起動し直した」という報告が来て、すぐに訂正が入った。\n9:11 に起動した dev サーバー（PID 27508）は、実際には止まらずに動き続けていた。",[22,61,63],{"id":62},"ctrl-で関数を並べ直す","Ctrl+[ で関数を並べ直す",[15,65,66],{},"10時半ごろから Excel 講座に移った。\nCtrl+[ は計算結果ではなく、数式に書かれた参照範囲を選択する。\nこの観点で並べると、FILTER は INDEX/MATCH と同格で、外れるのは VLOOKUP だけだ、という答えが返ってきた。",[15,68,69],{},"ここで FILTER の演習は入れざるを得ない、と思った。\n引っかかったのは、最初の表で XLOOKUP も「同上」と扱われていたことだ。\nINDEX/MATCH なら Ctrl+[ で第1引数の数値の部分に飛ぶが、XLOOKUP はそうではない。\nそう聞き返すと、表の訂正が返ってきた。\nCtrl+[ は数式で最初に出てくる参照に飛び、XLOOKUP の第1引数は作業シートの検索値なので、マスタには飛べない。\nマスタに飛べるのは、第1引数が返す範囲になっている INDEX と FILTER だけだった。\nXLOOKUP は入れず、FILTER は入れる。\n置き場所は、INDEX/MATCH関数_演習の直後、SUMIFS関数の前に独立した章として挟む案になった。",[15,71,72],{},"特定の箇所だけでなく、全体の構成を考え直したほうがいい気もした。\nそこで FILTER を入れる前提の拡充計画書を作らせ、Codex のレビューまで進めてもらった。\n調べていく途中で、シーン再現エンジンが FILTER のスピルに対応していないことが分かった。\n実機の Excel でも試してもらい、FILTER はスピル先のセルからでもマスタへ飛べることを確かめた。\nCodex のレビューは「致命的な指摘なし」で通った。",[15,74,75],{},"判断事項は4件で、計画書 HTML の回答フォームで答えた。\n4件とも推奨案（A）を選び、コメントは付けていない。\nD1 の中身は、FILTER の章と演習を INDEX/MATCH関数_演習の直後に置き、内訳の検算演習だけを「SUMIFS関数_演習 02」に回す、というものだ。",[15,77,78,79,83],{},"すぐ実装に入るかは迷った。\nコンテキストは24%で、今やってもよさそうに見える。\nただ、別のセッションでもこの講座にかなり手を入れていて、今やると重複するかもしれない。\nワークツリーを切ってそこでやるのを勧められた。\n再開用のプロンプトは、ダウンロードフォルダのテキストファイル（",[80,81,82],"code",{},"excel-filter-expansion-prompt.txt","）に書き出してもらった。",[22,85,87],{"id":86},"worktree-で-filter-の章を入れる","worktree で FILTER の章を入れる",[15,89,90,91,94],{},"11時過ぎ、そのテキストファイルを渡して新しいセッションを始めた。\n章を挟むと、ページ内のリンクに使っている ",[80,92,93],{},"?ci="," の番号がずれる。\nまず番号に依存する箇所を洗い出させた。",[15,96,97,98,101],{},"実測の段では、つまずきが2回あった。\nExcel の実測スクリプトは、PowerShell の配列の平坦化で止まった。\n直して再実行すると、今度は、Ctrl+[ を押すと A1 に移ってしまう、という不可解な結果が出た。\nこちらは切り分け用の短いスクリプトで原因を確かめてもらい、実測結果を ",[80,99,100],{},"excel-facts.md"," に書き込んだ。",[15,103,104,105,108],{},"横展開の修正では、別セッションとの衝突を先に見た。\n別セッションが NG 集を直していたのは 508〜542 行付近で、今回直す VLOOKUP の節（700 行付近）とは重ならなかった。\n直したのは、表示されるイントロ（",[80,106,107],{},"contents.vue","）、「1行1件」の原則、NG 集の「VLOOKUP関数は使わない」、XLOOKUP のまとめと実務の二段構え、といった箇所だ。",[15,110,111,112,114,115,118,119,122],{},"FILTER の章は、6節と演習2本、それに SUMIFS関数_演習 02 という構成に固まった。\n関数一覧ページは ",[80,113,93],{}," を直書きしていたので、SUMIFS 以降（ci=10〜16）を2つずらした。\n一覧ページのリンクは31本すべて、名前どおりの節に着地した。\n設計の原則（ReadableSheets）の節は、子要素の数を19のまま保ち、既存の読み上げで光らせる位置がずれないようにした。\nテストは 5/5 で通り、ブランチ ",[80,116,117],{},"excel-filter"," に ",[80,120,121],{},"97edbdb4"," でコミットした。",[15,124,125,126,129,130,133],{},"画面を確かめてから、追加で頼んだ。\n講座の本文だけでなく、動画コンテンツのほうも FILTER 関数で作ってほしい。\n「契約書」と言ってしまったが、計画書のことと解釈して追記してもらった。\n自分の確認作業は、localhost のフルパス付きで Google タスクに残した。\n残っていた作業として、読み上げで「FILTER」を「フィルター」と読ませる対応を足し、",[80,127,128],{},"8030b85e"," でコミットした（Codex のレビューは指摘なしで通過）。\n改行だけが変わった2ファイルは、",[80,131,132],{},"git checkout"," での破棄が拒否されたので、そのまま残してある。",[22,135,136],{"id":136},"ワークフローで再現動画を作る",[15,138,139,140,143],{},"12時、次のセッションで Step 4（再現動画の FILTER 対応）に入った。\nworktree に main をマージ（",[80,141,142],{},"d973fc03","）してから、Workflow で複数のエージェントを順につなぐ形にした。\nエンジンのスピル対応、再現シーン9本の台本、一覧ページ、登録、画面検証という流れで、全体は約8体だ。",[15,145,146],{},"起動してから気になって聞いた。\n3並列くらいなら、普通のサブエージェントを使うのと同じではないか。\n答えは「はい」だった。\n同時に動いたのは最大4体（シーン台本3体と、一覧ページと語りの整合の1体）で、全体では8体を順番につないでいた。",[15,148,149],{},"そこからは待つ時間が長かった。\nワークフローが終わるまでに、進捗を6回聞いている。",[42,151,152,155,158,161,164],{},[45,153,154],{},"開始から約20分：最初の段（エンジン担当）がまだ動いている",[45,156,157],{},"約40分：エンジン担当がまだ終わらず、後ろの3段は未着手",[45,159,160],{},"エンジンの段は 12:59 に終わり、シーン台本9本も書き上がった",[45,162,163],{},"登録の段に入って約14分",[45,165,166],{},"14:05ごろから、2体が並行して再現シーンを Chrome で開き、スクリーンショットで確かめていた",[15,168,169,170,173],{},"8体ともエラーなしで終わった。\n計画の段階で FILTER のスピルに対応していなかったエンジンには、FILTER とスピル、Ctrl+[ のスピル先対応、スピルの青い枠が入った。\nCodex のコミットレビューを経て ",[80,171,172],{},"e89256f2"," でコミットし、FILTER の再現シーン9本が画面で動くことも確かめた。",[22,175,177],{"id":176},"音声が無かったので-gpu-で12本","音声が無かったので GPU で12本",[15,179,180],{},"ところが、再現シーンに音声が無い。\n聞いてみると、音声はまだ一度も生成していなかった。\n他のセッションでは GPU を使っていないはずなので、使うよう伝えた。",[15,182,183,184,187],{},"対象は12本になった。\nFILTER の再現シーン9本、語りを直した XLOOKUP と NG 集 VLOOKUP の2本、関数一覧ページの動画の語り1本だ。\n途中で聞いたときは12本中6本が終わっていて、その先頭は ",[80,185,186],{},"filter-when","（142秒）だった。\nXLOOKUP と NG 集の2本は、変えていない文を前の音声から使い回せたので、それぞれ1分足らずで終わった。\n最終的に12本とも失敗はなく、再現シーン11本は話速が BPM120 にそろい、文の出だしが小節の頭に来ることも確かめた。",[15,189,190],{},"9/25 に決めたとおり、Excel 講座も本番の声は自分で読む。\nこの12本は、朝の役割分担に当てはめれば、テンポと内容を確かめるための下書きの声にあたる。",[15,192,193,194,197,198,200,201,203],{},"自分のレビューは途中まで進んでいる。\n進捗を計画書の冒頭に「進捗メモ」として残させ、続きを明日（10/3）の Google Tasks に登録した。\n計画書と実測、進捗メモの12ファイルは main に ",[80,195,196],{},"384cc629"," でコミットした。\nコードは ",[80,199,117],{}," ブランチの ",[80,202,172],{}," にある。",[22,205,206],{"id":206},"振り返り",[42,208,209,212],{},[45,210,211],{},"Ctrl+[ でどこへ飛ぶか、という一つの観点で関数を並べ直すと、入れる関数と入れない関数が分かれた。FILTER は入れ、XLOOKUP は入れない",[45,213,214],{},"合成音声は本番の声ではなく、テンポと内容を確かめる下書きで、録るときの速さの手本になる",[15,216,217],{},"Workflow を使った今回の Step 4 は、同時に動いたのが最大4体で、並列の幅は普通のサブエージェントと変わらなかった。\n違うのは8体を段でつないだところで、その1段目だけで40分を超えて待った。",{"title":219,"searchDepth":220,"depth":220,"links":221},"",2,[222,223,224,225,226,227],{"id":24,"depth":220,"text":25},{"id":62,"depth":220,"text":63},{"id":86,"depth":220,"text":87},{"id":136,"depth":220,"text":136},{"id":176,"depth":220,"text":177},{"id":206,"depth":220,"text":206},"dev",null,"Excel講座にFILTER関数の章と演習を足し、再現動画のスピル対応と12本の音声合成まで進めた記録。朝はショート動画の音声を「合成は下書き、投稿版は全文を自分の声で録り直す」前提に切り替えた。","md",{},true,"/excel-course-filter-exercise-narration","eurekapu-nuxt4",false,"2026-10-02T00:00:00.000Z",{"title":5,"description":230},"make-diary","2026-10/2026-10-02/excel-course-filter-exercise-narration",[242,243,244,245,246,247],"Excel","FILTER関数","Irodori-TTS","音声合成","Claude Code","git worktree","j7Gmry74sinmOOLNwx0xVdC4O8sEOINZNqfxFdvx6aY",[],[251,255,259,263,267],{"title":252,"path":253,"publishedAt":254},"TikTokのアカウントをジャンル別に分ける方法を調べ、Irodori-TTS v4 Largeを手元のGPUで試した","/tiktok-genre-accounts-and-irodori-tts-large-check","2026-09-30T00:00:00.000Z",{"title":256,"path":257,"publishedAt":258},"Excelの縦型ショート動画を26本作ってTikTokに投稿するまで：イントロ演出、4つ打ちBGM、カバー画像の作り直し","/excel-shorts-tiktok-vertical-series","2026-09-28T00:00:00.000Z",{"title":260,"path":261,"publishedAt":262},"Excel講座の動画化：TTSの読み替えルールを決め、Excel操作の再現シーンで関数の章を組み直す","/excel-course-video-tts-and-functions-restructure","2026-09-24T00:00:00.000Z",{"title":264,"path":265,"publishedAt":266},"Excel講座の本人音声を全編再合成した日：読み上げ台本を「耳で分かるか」でレビューし、聞いた感想を区間単位で直す","/excel-course-narration-ear-review-feedback","2026-09-23T00:00:00.000Z",{"title":268,"path":269,"publishedAt":270},"Excel講座のナレーションを本人の声で一括合成した日：Irodori-TTSをWindowsとMacで分担する","/excel-course-narration-mac-windows-split","2026-09-22T00:00:00.000Z","https://log.eurekapu.com/og/blog/excel-course-filter-exercise-narration.png?v=2026-10-02T00%3A00%3A00.000Z&title=Excel%E8%AC%9B%E5%BA%A7%E3%81%ABFILTER%E9%96%A2%E6%95%B0%E3%81%AE%E7%AB%A0%E3%81%A8%E6%BC%94%E7%BF%92%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%9F%E6%97%A5%EF%BC%9ACtrl%2B%5B%E3%81%A7%E6%A7%8B%E6%88%90%E3%82%92%E8%A6%8B%E7%9B%B4%E3%81%97%E3%80%81%E3%83%8A%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E5%90%88%E6%88%90%E9%9F%B3%E5%A3%B0%E3%82%92%E6%89%8B%E6%9C%AC%E3%81%AB%E8%87%AA%E5%88%86%E3%81%A7%E9%8C%B2%E3%82%8B&author=Kei%20Komatsu&sig=fe89a1dba8282440",1790978463706]