Claudeでイベントの進行表を作り持ち時間を検算する — 開始時刻をコード実行で照合
登壇・転換・休憩の持ち時間を入れた進行表をClaudeにxlsxで作らせ、開始時刻の積み上げと終了時刻の超過をコード実行で検算する手順です。
Claudeでイベントの進行表を作り持ち時間を検算する — 開始時刻をコード実行で照合
イベントの進行表は、持ち時間と転換を足していくだけの表に見えて、直しが入るたびに時刻がずれます。登壇を5分延ばしたのに、後ろの開始時刻を書き換え忘れる。休憩の開始が決まっているのに、前の枠が押して食い込む。こうしたずれは、Claudeに表を作らせるだけでは防げません。
この記事では、登壇・転換・休憩を並べたxlsxをClaudeに作らせ、開始時刻の積み上げと終了時刻をコード実行で検算させる手順を示します。題材は架空の社内カンファレンス(13時開始・17時までの会場枠)です。
進行表の検算で確かめるのは3点だけ
進行表の検算は、突き詰めると次の3点です。この3つを「人の目」ではなく計算で確かめるのが狙いです。
進行表で計算にかけたい3つの点
開始時刻の積み上げ
各行の開始は、前の行の終了に転換時間を足した時刻になります。表に手で書いた開始時刻が、この積み上げと一致しているかを見ます。
固定点との整合
休憩や昼食、配信の切り替えのように、動かせない時刻があります。手前の枠が押しても、その時刻に間に合うかを見ます。
終了時刻と会場枠
最後の枠が終わる時刻が、会場の退出時刻や配信枠に収まるかを見ます。余りが何分かも出します。
撮影現場の香盤表(出演者と撮影順を並べた表)は、台本と連動する別の作業です。YouTubeの台本と撮影の香盤はClaudeでYouTube台本と香盤表を作るで扱っています。ここで作るのは、会場で人と時間を回すための進行表です。
進行表の列は「持ち時間」と「転換」を分ける
最初に決めるのは列の構成です。持ち時間と転換を同じ列に混ぜると、検算のたびに分解する手間が出ます。次の5列に分けておくと、計算式も検算も単純になります。
| 列 | 内容 | 入力か計算か |
|---|---|---|
| 項目 | 内容開会、基調講演、休憩など | 入力か計算か入力 |
| 持ち時間(分) | 内容その枠そのものの長さ | 入力か計算か入力 |
| 転換(分) | 内容次の枠に移るまでの準備時間 | 入力か計算か入力 |
| 開始 | 内容前行の終了に前行の転換を足した時刻 | 入力か計算か計算 |
| 終了 | 内容開始に持ち時間を足した時刻 | 入力か計算か計算 |
転換は「その行の後ろ」に付ける約束にします。基調講演の転換5分は、基調講演の終了から次のセッションの開始までの5分です。登壇者の入れ替えやマイクの受け渡しがここに入ります。
Claudeへの依頼は、列の意味と、計算にする列を先に伝えます。たとえば次のように頼めます。
社内カンファレンスの進行表をxlsxで作ってください。
- 列は 項目 / 持ち時間(分) / 転換(分) / 開始 / 終了
- 開始は1行目だけ13:00を入力し、2行目以降は前の行の終了+前の行の転換で計算する式にする
- 終了は 開始+持ち時間 の式にする
- 項目は 開会あいさつ5分、基調講演30分、セッションA・B 各25分、休憩15分、
パネルディスカッション40分、セッションC 25分、表彰・閉会15分
- 転換は登壇間5分、セッションBの後だけ機材入れ替えで10分、開会あいさつ・休憩・閉会の後は0分(開会に続けて基調講演)開始と終了を値ではなく式にしておくと、持ち時間を1つ変えただけで後ろの時刻が追随します。手で時刻を書き込んだ表は、直したあとにどの行を見直せばよいかが分かりません。
手書きの開始時刻と積み上げを突き合わせる
式で作った表は崩れにくい反面、現場では「配布用に時刻を手で書いた版」が別に出回ります。紙の進行表や、出演者に送る連絡文の時刻です。この手書きの時刻が、積み上げと合っているかを検算します。
次のスクリプトは、項目・持ち時間・転換・手書きの開始時刻を並べ、13時から積み上げた時刻と比べます。手元で実行した例です。
from datetime import datetime, timedelta
OPEN = datetime.strptime("13:00", "%H:%M")
CLOSE = datetime.strptime("17:00", "%H:%M")
# (項目, 持ち時間(分), 転換(分), シート上の開始時刻)
rows = [
("開会あいさつ", 5, 0, "13:00"),
("基調講演", 30, 5, "13:05"),
("セッションA", 25, 5, "13:40"),
("セッションB", 25, 10, "14:10"),
("休憩", 15, 0, "14:45"),
("パネルディスカッション", 40, 5, "15:00"),
("セッションC", 25, 5, "15:50"),
("表彰・閉会", 15, 0, "16:20"),
]
t = OPEN
for name, dur, gap, sheet in rows:
calc = t.strftime("%H:%M")
end = t + timedelta(minutes=dur)
flag = "" if calc == sheet else f" <- シート {sheet} とずれ"
print(f"{calc}-{end.strftime('%H:%M')} {name}({dur}分){flag}")
t = end + timedelta(minutes=gap)
last_end = t - timedelta(minutes=rows[-1][2])
print("終了:", last_end.strftime("%H:%M"),
"/ 枠の終わりまで", int((CLOSE - last_end).total_seconds() // 60), "分")
print("持ち時間合計:", sum(r[1] for r in rows), "分 /",
"転換合計:", sum(r[2] for r in rows), "分")python3 timetable_check.py手元(Python 3)での出力は次のとおりです。
13:00-13:05 開会あいさつ(5分)
13:05-13:35 基調講演(30分)
13:40-14:05 セッションA(25分)
14:10-14:35 セッションB(25分)
14:45-15:00 休憩(15分)
15:00-15:40 パネルディスカッション(40分)
15:45-16:10 セッションC(25分) <- シート 15:50 とずれ
16:15-16:30 表彰・閉会(15分) <- シート 16:20 とずれ
終了: 16:30 / 枠の終わりまで 30 分
持ち時間合計: 180 分 / 転換合計: 30 分ずれたのはセッションCと表彰・閉会の2行です。パネルディスカッションの後ろに転換が5分あるのに、手書きの版には10分入っていた計算になります。5分の食い違いは、目で追うと見落としやすい大きさです。
固定点と会場枠の超過を機械的に見つける
積み上げが合っていても、休憩の開始が決まっているなら別の検算が要ります。固定点を持つ行について「積み上げの開始が、固定時刻より後ろになっていないか」を見ます。先ほどの表では休憩の積み上げ開始が14:45で、手書きと一致しています。ここが14:40に固定されている会場だったら、5分の超過です。
固定点を持つ枠が押したときの切り分け
- Q積み上げの開始が、固定時刻より後ろか?答えが後ろではない答えがはい
その枠は固定点に間に合います。余りの分数を表の備考に残して終わりです。
- Q手前の枠の持ち時間を詰められるか?答えが詰められる答えが詰められない
持ち時間を詰めて、もう一度積み上げを検算します。
- Q転換を詰められるか?答えが詰められる答えが詰められない
転換を詰めて、もう一度積み上げを検算します。
どちらも詰められないなら固定点を動かす
固定点の側を動かせるかを主催者に確かめます。動いた後の値で、もう一度検算します。
最後の枠の終了も同じ考え方です。上の例は16:30に終わり、17:00の会場枠まで30分の余りがあります。余りがマイナスになったら超過です。Claudeには「超過した行を特定し、削る候補を3案出す」と頼めますが、どの枠を削るかは主催者が決めることです。
Claudeにコード実行で検算させる依頼文
検算のスクリプトは、自分で書かなくてもClaudeのコード実行に任せられます。作ったxlsxをそのまま渡して、検算の項目を明示します。
添付の進行表(xlsx)を検算してください。コード実行で計算し、暗算はしないでください。
1. 開始列の式が、前行の終了+前行の転換になっているかをセルごとに確認する
2. 13:00からの積み上げ時刻を再計算し、シートの値と違う行を列挙する
3. 固定点は「休憩の開始14:45」。積み上げがこれより遅い行がないか確認する
4. 最終行の終了時刻と、17:00までの余り(分)を出す
結果は表で示し、実行したコードも見せてください。「コードも見せてください」と頼むのが肝心です。出力の数字だけを読むと、Claudeが何を足したのか分かりません。コードが見えれば、転換を行の後ろに付けるという約束が守られているかを、自分で追えます。
返ってきた結果は、手元の小さなスクリプトと突き合わせます。2つの計算が一致すれば、表の時刻は信頼できます。食い違うときは、転換の足し方や、日付をまたぐ時刻の扱いに差があります。
使えるプランと、先に入れておく設定
xlsxの作成とコード実行は、Free・Pro・Maxで既定で有効です。TeamとEnterpriseでは組織の設定で既定は有効ですが、オーナーが無効にできます。個人プランで使うときは、Settings > Capabilitiesで「Code execution and file creation」をオンにします。モバイルでも同じ設定で切り替えられます。
TeamとEnterpriseのネットワークアクセスは既定でオフ、またはパッケージ管理のみです。進行表の作成と時刻の検算は、アップロードした表の中で完結するので、外部へのアクセスは要りません。外に出せない案件の進行表でも、ネットワークをオフにしたまま使えます。
押さえておく制約は3つあります。
- ファイルサイズは、アップロードもダウンロードも1ファイル30MBまで
- 作ったファイルはダウンロードするか、Google Driveに保存できる
- ファイル作成は、通常のチャットより利用上限を多く消費する
進行表は数十行の小さなファイルなので、30MBに触れることはまずありません。ただし、直しのたびに作り直しを頼むと、その分だけ上限を使います。手順は後述のとおり、直す箇所を絞って頼む形にします。
ファイル作成の範囲とセキュリティ設定の全体像は、Claudeでファイル作成・編集ができる範囲とセキュリティ設定にまとめています。
直しが入ったときは、式の表を直して検算し直す
本番までに進行表は何度も直ります。登壇者が増える、パネルが10分延びる、といった変更です。直し方で、検算の信頼性が変わります。
進行表の直し方
時刻を手で書き換える
延びた枠の後ろの開始時刻を、1行ずつ手で直します。どれか1行を忘れると、積み上げと手書きがずれます。
持ち時間だけを変えて、式に追随させる
持ち時間の列の1か所だけを変えます。開始と終了は式なので追随し、そのうえで検算を回して、固定点と終了時刻を確認します。
Claudeに直しを頼むときは、「パネルディスカッションの持ち時間を40分から50分にして、検算を回して」と変更点を1つに絞ります。表全体の作り直しを頼むより利用上限の消費も抑えられますし、どこが変わったかも追えます。
配布用の手書き版が必要なら、式の表が確定してから、開始時刻だけを値として書き出させます。順序を逆にして手書き版から直すと、検算の拠り所がなくなります。
進行表で起きやすい食い違いの型
実際に表を回すと、食い違いには型があります。見つけやすい順に並べます。
落とし穴
転換を「前の行」に付けたのか「後ろの行」に付けたのか混ざる
行の前に付ける人と後ろに付ける人が混ざると、5分ずつの誤差が積み上がります。列の見出しを「転換(この枠の後ろ)」にしておくと、依頼文でもスクリプトでも約束が揃います。
落とし穴
休憩を持ち時間に数えるかどうかが決まっていない
上の例の「持ち時間合計180分」には休憩の15分が含まれています。登壇時間だけを出したいなら、休憩の行に「登壇外」の印を付けておき、合計から外す指定を依頼文に入れます。
落とし穴
中途半端な時刻を丸めてしまう
開始が13:07のような時刻になっても、検算の段階では丸めない指定を依頼文に入れておきます。丸めると積み上げが崩れて、検算の意味がなくなります。丸めるのは、配布用の手書き版を作るときに限ります。
登壇者が複数いる場面で、持ち時間そのものが原稿の長さで決まる場合は、先に原稿を持ち時間へ収めておくと進行表が安定します。話し言葉への直し方と文字数の逆算はClaudeで経営者の登壇原稿を話し言葉に直して持ち時間に収める手順で扱っています。
参加者の連絡とあわせて回す
進行表の確定後は、出演者や運営への連絡に時刻を転記します。この転記も食い違いの元です。参加者の窓口をメールで回しているなら、Claudeでメールからイベント管理表を作る方法の管理表と、進行表の時刻を同じ値で保つとよいです。
同じ「勤務や時間を積み上げて基準と照合する」型の検算は、Claudeで看護の勤務表と夜勤72時間を点検するにもあります。基準が違うだけで、計算を暗算に任せず、コード実行と手元のスクリプトで二重に確かめる流れは同じです。
まとめ
進行表の検算は、開始時刻の積み上げ・固定点・終了時刻の3点を、式の表とコード実行で確かめる作業です。開始と終了を式にしておき、手書きの配布版との差を検算で拾います。時刻の誤差は5分単位で積み上がるので、依頼文では転換をどの行に付けるかを先に約束しておくと、Claudeの計算と手元のスクリプトが一致しやすくなります。
最後の決め手は、削る枠を決める判断です。検算で超過が出ても、どの登壇を削るかは主催者の仕事です。Claudeには超過した行の特定と、削減案の試算までを頼むのが、役割分担として落ち着きます。