NOW関数 vs TODAY関数 – 現在の日付や時刻を取得する関数の違い
1. 使い方と活用例
NOW関数とTODAY関数は、いずれも「現在の日時」に関する情報を自動的に取得するために使用されます。
ただし、それぞれ返される情報に違いがあるため、目的に応じて正しく使い分けることが重要です。
2. 基本の書式
=NOW()
=TODAY()
3. 引数の説明
- NOW関数:引数は不要。実行時点の「日付と時刻」を返す
- TODAY関数:引数は不要。実行時点の「日付のみ」を返す
4. 2つの関数の違い
NOW関数は、現在の日付と時刻の両方を返します。たとえば「2025/04/12 10:25:00」のような形式で表示されます。
TODAY関数は、時刻部分を含まず、日付だけを返します。たとえば「2025/04/12」のような形式です。
この違いにより、時間単位での処理をするかどうかが使い分けのポイントになります。
5. 使用シーン
- NOW関数:打刻システム、ログ記録、更新時刻の表示など
- TODAY関数:締切日チェック、日数計算、毎日のルーティン処理など
6. 使い分けの方法
どちらの関数も自動で更新されるため、場面に応じて以下のように使い分けるのが基本です。
時刻の精度が必要な処理: NOW関数を使用。
日単位での処理や比較: TODAY関数を使用。
たとえば、ログの記録で正確な時刻が必要な場合はNOW関数を使い、期限日との比較などではTODAY関数の方が適しています。
7. 応用のポイント
NOW関数は再計算のたびに更新されるため、時刻を静的に記録したい場合には不向きです。
その場合は、VBAを利用してセルに静的な日時を記録することが有効です。
また、NOW関数とTODAY関数はいずれも「シリアル値」で日付を表現しているため、TEXT関数などを使ってフォーマットを調整することができます。
8. 具体例とその解説
例1:今日が締切かどうかをチェックする
=IF(A2=TODAY(),"本日が締切","まだ日があります")
A2セルに入力された日付と、TODAY関数で取得した日付を比較しています。
時刻の影響を受けたくないため、TODAY関数を使用しています。
例2:入力されたときの時刻を記録する
=IF(B2<>"",NOW(),"")
B2セルに入力があると、NOW関数を使ってその時点の日時を記録します。
ただし再計算で更新されるため、静的な記録にはVBAを活用することが望ましいです。
9. 関連関数の紹介
- TIME関数 – 時・分・秒を指定して時刻を作成する関数
- DATE関数 – 年・月・日を指定して日付を作成する関数
- TEXT関数 – 日付や時刻を指定フォーマットの文字列に変換する関数
- DATEDIF関数 – 2つの日付の差を求める関数
10. まとめ
NOW関数は「現在の時刻まで含む日付」、TODAY関数は「日付のみ」を返します。
用途に応じて正しく使い分けることが大切です。
再計算の影響を受ける点にも注意し、静的な記録が必要な場合は手動入力やVBAの利用を検討しましょう。
11. 対応バージョン
NOW関数とTODAY関数は、すべてのExcelバージョン(Excel 2007以降、Microsoft 365含む)で利用可能です。
Web版でも使用できますが、再計算のタイミングが異なるため、動作確認が必要な場合があります。