自動更新の契約は、解約通知の締切を過ぎると1年延びる。締切は更新日の1か月前から3か月前あたりに設定されていることが多い。
台帳に更新日を書いておくやり方だと、1回目の更新で古くなる。開始日と契約期間から計算する形にすれば、毎年直さなくて済む。20件で試したら、すでに締切を過ぎているものが4件あった。
以下の計算は、2026年9月21日にMicrosoft 365のExcel(バージョン16)で行った。祝日は内閣府の一覧を使った。契約の条件は式を確かめるために作った架空のものだ。契約の解釈そのものは扱っていない。
更新日を書くと、1回目の更新で古くなる
契約台帳によくある形が、契約名、相手先、開始日、終了日、更新日の列だ。終了日と更新日に日付が入っている。
この形の弱点は、更新したあとに誰かが書き換えないといけないことにある。2021年に始まった1年契約なら、2022年、2023年、2024年と毎年書き換える必要がある。
書き換えが止まると、台帳の日付が過去のまま残る。過去の日付は期限の抽出に引っかからないので、そのまま忘れられる。実際、更新漏れはここで起きる。
開始日と契約期間だけを持って、更新日は式で出す。そうすれば書き換えが要らない。
次の更新日を出す
考え方は単純だ。開始日から今日まで何か月たったかを出し、それを契約期間で割れば、何回更新したかが分かる。次はその1回先になる。
経過した月数: =DATEDIF(開始日,TODAY(),"m")
更新の回数: =INT(経過した月数/契約期間)+1
次の更新日: =EDATE(開始日,契約期間*更新の回数)
DATEDIFは2つの日付の間の月数を返す。INTで切り捨てて、1を足せば次の回になる。
2021年5月10日に始まった12か月契約なら、2026年9月21日の時点で経過は64か月。12で割って切り捨てると5、1を足して6回目。開始日から72か月後の2027年5月10日が次の更新日になる。
契約期間が24か月の契約も同じ式で出る。2020年2月15日開始の24か月契約なら、次は2028年2月15日だ。EDATEが月単位で動くので、期間の長さを変えても式は変わらない。
通知の締切は、更新日から予告期間を引く
解約を申し入れる期限は、更新日から予告の期間だけ前になる。
通知の締切: =EDATE(次の更新日,-予告の月数)
3か月前の予告なら-3を渡す。2026年11月25日が更新日で予告が3か月なら、2026年8月25日が締切だ。
締切が土日祝に当たったら前倒しにする。締切当日が休みだと出せないからだ。
実際の締切: =WORKDAY(通知の締切+1,-1,祝日!$A:$A)
税金の納付は休み明けに延びるが、契約の通知は前に詰める。方向が逆なので、同じ表で管理するときは列を分ける。納付の側の扱いは支払予定表の記事に書いた。
祝日で3日前倒しになった契約があった
20件のうち7件が、営業日の調整で締切が動いた。35%だ。
いちばん大きく動いたのが、2026年7月20日が締切になる契約だった。この日は海の日で祝日だ。前営業日は7月17日の金曜になる。3日前倒しだ。
暦の上の締切だけを見ていると、7月20日の朝に気づいても間に合わない。土日と祝日が続くと、3日や4日の差が出る。祝日の一覧を表に持たせる作り方は祝日を判定する記事に書いた。
20件のうち4件が過ぎていた
締切までの日数で状態を分けた。
=IF(あと何日<0,"過ぎている",
IF(あと何日<=30,"今月中",
IF(あと何日<=90,"3か月以内","先")))
締切を過ぎているのが4件、今月中が3件、3か月以内が4件、先が9件だった。
過ぎている4件は、次の更新がもう確定している。27日過ぎているもの、66日過ぎているものがあった。この期の解約はできないので、次の更新日の締切をカレンダーに入れ直す。
見るのは今月中の3件と、3か月以内の4件だけになる。20件を毎月眺めるのではなく、この7件を見る。
=COUNTIF($状態の列,"今月中")
月次の作業に組み込む形は月次の締めの記事と同じで、第何営業日に見るかを決めておく。
年額の列を足すと、見直す順番が決まる
期限の管理だけなら日付の列で足りるが、年額を1列足すと使い道が増える。
20件に年額を入れて合計したら14,706,000円になった。上位5件だけで9,840,000円、全体の66.9%を占める。年額10万円未満の契約が4件あった。
上位5件の合計: =SUMPRODUCT(LARGE($年額,ROW(INDIRECT("1:5"))))
占める割合: =ROUND(上位5件/合計*100,1)
契約の見直しは、件数ではなく金額の順にやる。10万円未満の4件を全部やめても、年に30万円ほどしか変わらない。上位5件のうち1つを見直すほうが効く。
状態と組み合わせると、もっと絞れる。
=SUMIF($状態の列,"今月中",$年額の列)
今月中に締切が来る契約の年額は1,584,000円だった。この金額を先に出しておくと、判断を急ぐ理由が数字で説明できる。
締切を過ぎている4件の年額は2,232,000円ある。この期は動かせないので、次の更新日の締切をカレンダーに入れる。1年後に同じことが起きないようにする。
締切の90日前に一度見て、30日前に動く
日付が出たら、動く日を2つ決める。
90日前に、この契約を続けるかどうかの判断を始める。相見積もりを取るなら、ここから動かないと間に合わない。
30日前に、判断を確定させて通知を出す。書面で出す契約なら、社内の決裁と郵送の日数が要る。
判断を始める日: =実際の締切-90
通知を出す日: =実際の締切-30
この2つの列を作って、それぞれ今日と比べる。今日がどちらかの日を過ぎていて、まだ動いていない契約が残っていないかを見る。
30日前という数字は、社内の決裁にかかる日数で決める。決裁が2週間かかる職場なら、45日前にする。自分の職場の実績から決める。
台帳に持つ列
入力するのは5つだけにする。契約名、相手先、開始日、契約期間の月数、予告の月数。
残りは全部式で出る。経過した月数、更新の回数、次の更新日、通知の締切、実際の締切、締切までの日数、状態。
契約書のファイルの場所を入れる列も足しておくと、締切が近づいたときにすぐ開ける。パスを文字で書くだけでいい。
自動更新でない契約も同じ表に入れる。契約期間の列に期間を入れて、予告の列を空にしておけば、締切は出ないが終了日は出る。終了日を過ぎたら契約がなくなることが分かる。
契約期間が「1年」ではなく「2027年3月31日まで」のように日付で決まっている契約は、この式では扱えない。開始日と期間の形に直せないので、別の列に終了日を直接書く。
踏んだ失敗
台帳の更新日を毎年書き換える運用をしていた。担当が変わった年に止まり、3つの契約が古い日付のまま残った。そのうち1つは、気づいたときには締切の2週間後だった。もう1年払うことになった。
予告の期間を契約ごとに確かめていなかったこともある。全部3か月だと思い込んで一覧を作った。実際には1か月の契約と6か月の契約が混ざっていた。6か月の契約の締切を3か月前と計算していたので、3か月遅れる。契約書を1通ずつ開いて、予告の月数を拾い直した。
営業日の調整を入れていなかった年もある。締切当日に郵送で出そうとして、その日が祝日だった。内容証明で出す契約だったので、郵便局が開いていないと出せない。
契約の開始日を、署名した日で入れていたこともある。契約書に書かれている契約期間の開始日と違っていた。更新日が1か月ずれて、締切もずれた。台帳には契約書の条項に書かれた日付を入れる。
確認していないこと
解約の意思表示をどの方法で出すべきかは扱っていない。書面か、内容証明か、メールでよいかは契約書の条項による。
締切が休日に当たったときに前倒しでよいかも、契約によって変わる。上の式は前営業日で計算しているが、条項に到達主義と書かれているなら、相手に届く日で数える必要がある。
自動更新の条項が無効になる場合があるという話も聞くが、条件は確認していない。争いになりそうなら弁護士に相談する。
契約期間の途中で解約できる中途解約の条項も扱っていない。上の式が出すのは、更新のタイミングでの解約の締切だけだ。



