TODAYは、今日の日付を返す関数です。
引数がなく、=TODAY() と書くだけです。単純な関数ですが、値が毎日変わるという性質があり、これを理解していないと事故につながります。
書式
=TODAY()
括弧の中は空です。括弧自体は省略できません。
NOWとの違い
| 関数 | 返すもの |
|---|---|
| TODAY() | 今日の日付(時刻は0:00) |
NOW() |
今日の日付+現在時刻 |
日付だけ扱うならTODAYを使ってください。NOW() は時刻を含むため、日付の比較で意図しない結果になります。
=IF(A1 = TODAY(), "今日", "") 正しく動く
=IF(A1 = NOW(), "今日", "") ほぼ一致しない(時刻まで比較される)
期限管理に使う
TODAYの主な用途がこれです。
期限までの日数
=A1 - TODAY()
結果が数値で出ないときは、セルの表示形式が「日付」になっています。「数値」に変えてください。
期限切れの判定
=IF(A1 < TODAY(), "期限切れ", "")
残り日数で3段階に分ける
=IFS(A1 < TODAY(), "期限切れ",
A1 - TODAY() <= 3, "まもなく",
TRUE, "余裕あり")
IFS は上から順に判定されるので、厳しい条件から書く必要があります。
遅延件数を数える
=COUNTIFS(D:D, "未処理", E:E, "<"&TODAY())
COUNTIFS と組み合わせるのが定番です。比較演算子とTODAYは & で連結してください。"
条件付き書式と組み合わせる
期限が近い行に色を付けるには、カスタム数式に次を入れます。
=AND($E2 <> "", $E2 < TODAY(), $D2 = "未処理")
列だけを $ で固定するのがポイントです。行を固定しないことで、各行が個別に判定されます。
$E2 <> "" を入れているのは、空欄を期限切れと判定させないためです。空欄は0として扱われ、TODAYより小さくなるので、これがないと未入力の行が全部赤くなります。実務でよく起きるミスです。
毎日変わることの注意点
TODAYは揮発性関数です。 ファイルを開くたび、シートを編集するたびに再計算されます。
そのため、次のような使い方は危険です。
記録として残らない
「入力した日」を記録するつもりで =TODAY() を入れると、翌日には翌日の日付に変わります。 記録にはなりません。
対策: 入力日を固定したいなら、Ctrl + ; で日付を値として入力してください(Excel・スプレッドシート共通のショートカット)。
自動で記録したいなら、Google Apps Script か、スプレッドシートの「変更履歴」を使うことになります。数式では実現できません。
大量に置くと重い
揮発性関数なので、何千個も置くとファイル全体が重くなります。
対策: どこか1セルに =TODAY() を置き、他はそのセルを参照してください。
$A$1に =TODAY()
他のセル =B2 - $A$1
これだけで再計算のコストが大きく下がります。
過去のデータが変わって見える
「今日から見た残り日数」を保存すると、日が経つにつれて値が変わります。スクリーンショットを撮ったときと違う数字になるので、報告資料には向きません。
報告用には、基準日をセルに入力して固定するほうが確実です。
タイムゾーンに注意
TODAYが返す日付は、ファイルのタイムゾーン設定に依存します。
スプレッドシートの「ファイル → 設定 → タイムゾーン」を確認してください。海外のメンバーと共有していると、日付が1日ずれることがあります。
日付の計算例
月初・月末
=EOMONTH(TODAY(), -1) + 1 今月の1日
=EOMONTH(TODAY(), 0) 今月の末日
EOMONTH と組み合わせます。
今月のデータだけ集計
=SUMIFS(C:C, A:A, ">="&EOMONTH(TODAY(),-1)+1, A:A, "<="&EOMONTH(TODAY(),0))
曜日
=TEXT(TODAY(), "aaa")
年齢や勤続年数
=DATEDIF(A1, TODAY(), "Y")
DATEDIF と組み合わせます。
Excelとの違い
TODAY・NOW ともに共通です。書式も挙動も同じです。
タイムゾーンの扱いだけ異なります。ExcelはPCのシステム時刻を使い、スプレッドシートはファイルの設定を使います。共有ファイルではスプレッドシートのほうが一貫します。
まとめ
- - 書式は
=TODAY()。括弧の中は空 - - 時刻が要らないなら
NOW()ではなくTODAY - - 比較演算子と組み合わせるときは
"<"&TODAY() - - 毎日変わるので、記録には使えない。固定するなら
Ctrl+; - - 揮発性関数。1セルに置いて他から参照すると軽くなる
- - 条件付き書式では 空欄の除外 を忘れずに
コメントを残す