しごと自動化レシピ

WORK RECIPE GAS

期限超過の未完了行を複製表で色分けする

基準日を過ぎた未完了の案件だけを条件付き書式で強調します。TODAYに依存せず確認用の日付を使い、完了行と期限当日の行を除外できるか小さな表で確認します。

実行確認の記録なし

公式資料を参照して構成した手順です。本記事の操作・コードの実行は未確認です。小さな入力例で期待結果を確かめてから利用してください。

できあがるもの

A行だけが期限超過かつ未完了として色付きになります。Bは完了、Cは基準日当日なので対象外です。元の案件シートの書式は変わりません。

始める前に

  • ブラウザ版Googleスプレッドシートの編集権限と紐付きApps Script
  • コピーした検証用ファイルで実行。Apps ScriptはV8ランタイムを利用
  • 「案件」A列案件・B列期限・C列状態、E1に基準日を日付型で設定
  • 出力名「期限確認」は未使用、A2:C100を判定
入力例

案件!A1:C4は「案件,期限,状態」「A,2026/10/19,対応中」「B,2026/10/19,完了」「C,2026/10/20,対応中」。E1は2026/10/20。

手順

  1. 検証用の案件表を作ります。B列とE1は日付型とし、期限を文字列で入力しないでください。基準日を明示すると、翌日になっても同じ結果を比較できます。
  2. 次の完全なコードをスクリプトへ貼り付けて保存します。他の記事の同名関数があるプロジェクトには混ぜません。 /** @OnlyCurrentDoc */ function overdueColors() { const ss=SpreadsheetApp.getActive(), s=ss.getSheetByName('案件'); if(!s || ss.getSheetByName('期限確認')) throw Error('シートを確認'); if(!(s.getRange('E1').getValue() instanceof Date) || s.getMaxRows()<100) throw Error('基準日・行数を確認'); const out=s.copyTo(ss).setName('期限確認'); const rule=SpreadsheetApp.newConditionalFormatRule() .whenFormulaSatisfied('=AND(ISNUMBER($B2),$B2<$E$1,$C2<>"完了")') .setBackground('#fff0cc').setRanges([out.getRange('A2:C100')]).build(); out.setConditionalFormatRules([...out.getConditionalFormatRules(),rule]); }
  3. overdueColorsを手動実行し、対象ファイルの権限を確認します。期限確認ではAの行だけが薄い黄色になるかを確認します。
  4. コピー側E1を2026/10/21へ進めるとCも対象になるか確認し、元の日付へ戻します。既存の条件付き書式があると優先順位で見え方が変わるため、書式ルール一覧も確認します。

期待結果と照合する

A行だけが期限超過かつ未完了として色付きになります。Bは完了、Cは基準日当日なので対象外です。元の案件シートの書式は変わりません。

まずこの入力例で確認し、件数や値が一致しているかを見ます。完了表示だけで判断せず、重複・空欄・対象外データも残っていないか確認してください。

うまくいかないとき

  • 空白の期限を0として扱わないようISNUMBERで判定しています。日付に見える文字列は対象になりません。
  • 既存ルールとの重複は見た目で点検してください。締切違反の通知や担当者への送信は行いません。

止める・元に戻す

期限確認シートを削除します。コピー側で残したい場合は、条件付き書式の画面から追加した期限ルールだけを外します。

公式資料・対応範囲

参照日:2026-10-17。公式資料の一般的な機能説明と、本記事固有の入力例の実行検証は別です。実務での短縮時間や効果は未計測です。

同じツールで試す

GASの記事一覧へ →