エクセル関数辞典 エクセル関数辞典

TODAY・NOW関数の使い方|現在の日付と時刻を取得

TODAY NOW 日付 時刻 Excel関数
広告スペース (article-top)

TODAY関数とNOW関数は、現在の日付や日時を取得するExcelの基本関数です。引数が不要で手軽に使えるうえ、ファイルを開くたびに自動更新されるため、経過日数の計算や期限管理、タイムスタンプの表示など、さまざまな場面で活躍します。

各関数の基本構文

TODAY関数

=TODAY()

現在の日付(年月日)をシリアル値で返します。時刻情報は含みません。

NOW関数

=NOW()

現在の日付と時刻をシリアル値で返します。

引数の説明

引数説明必須/任意
(なし)TODAY関数・NOW関数ともに引数はありません-

どちらの関数も括弧は必要ですが、中に引数は入れません。

TODAY関数とNOW関数の違い

項目TODAYNOW
返す値日付のみ日付と時刻
更新タイミングファイルを開いたとき、再計算時ファイルを開いたとき、再計算時
表示例2026/06/172026/06/17 14:30
用途日単位の計算時刻を含む処理

実践例1:今日の日付を表示する

最もシンプルな使い方です。セルに今日の日付を表示します。

=TODAY()

結果は当日の日付が表示されます。ファイルを翌日開くと自動的に翌日の日付に更新されます。

日付の表示形式はセルの書式設定で変更できます。TEXT関数で文字列として整形することも可能です。

=TEXT(TODAY(), "YYYY年M月D日(AAA)")

実践例2:経過日数の計算

特定の日付から今日までの経過日数を求めます。

=TODAY() - A2

A2に開始日(例:2026/01/01)が入力されている場合、今日までの日数が数値で返されます。

納期までの残り日数を計算する場合も同様です。

=A2 - TODAY()

結果が正の値なら納期前、負の値なら納期超過です。IF関数と組み合わせて状態を表示できます。

=IF(A2 - TODAY() < 0, "期限超過", IF(A2 - TODAY() <= 7, "あと" & A2 - TODAY() & "日", "余裕あり"))

実践例3:年齢の計算

生年月日から現在の年齢を計算します。DATEDIF関数と組み合わせます。

=DATEDIF(A2, TODAY(), "Y")

A2に生年月日が入力されている場合、満年齢が数値で返されます。DATEDIFの第3引数「Y」は完了した年数を返します。

実践例4:NOW関数でタイムスタンプを表示

現在の日時を表示します。

=NOW()

レポートや帳票に「出力日時」を自動表示する場面で使えます。TEXT関数で書式を整えます。

="出力日時: " & TEXT(NOW(), "YYYY/MM/DD HH:MM:SS")

ただし、NOW関数は再計算のたびに値が変わるため、固定のタイムスタンプが必要な場合はCtrl+;(日付)やCtrl+:(時刻)のショートカットで直接入力する方が適切です。

実践例5:月初日・月末日の計算

TODAY関数を基準にして、当月の初日や末日を求めます。

当月初日を求める場合は次のようにします。

=DATE(YEAR(TODAY()), MONTH(TODAY()), 1)

当月末日を求める場合はEOMONTH関数を使います。

=EOMONTH(TODAY(), 0)

翌月初日を求める場合は次の通りです。

=DATE(YEAR(TODAY()), MONTH(TODAY()) + 1, 1)

これらの数式を使えば、月次レポートの期間を自動設定できます。

よくあるエラーと対処法

日付が数値で表示される

TODAY関数やNOW関数の結果がシリアル値(例:46184)で表示される場合は、セルの書式設定が「標準」や「数値」になっています。書式設定を「日付」に変更してください。

値が更新されない

TODAY関数とNOW関数は揮発性関数であり、以下のタイミングで更新されます。

  • ファイルを開いたとき
  • セルの内容を編集したとき
  • F9キーで再計算を実行したとき

手動計算モードに設定されている場合は、自動計算に切り替えるか、F9キーで手動更新してください。

固定の日付が必要な場合

TODAY関数やNOW関数は常に変化するため、記録用途には向きません。特定時点の日付を固定したい場合は、以下の方法を使います。

  • 値として貼り付け(Ctrl+Shift+V)で数式を値に変換する
  • Ctrl+;で現在の日付を直接入力する
  • VBAのWorksheet_Changeイベントで入力時刻を記録する

日付の引き算で小数が表示される

NOW関数同士の引き算では時刻部分が含まれるため、結果に小数が出ます。日数だけが必要な場合はINT関数で整数部分を取り出します。

=INT(NOW() - A2)

日付のシリアル値について

Excelは日付を「シリアル値」と呼ばれる数値で管理しています。1900年1月1日を1として、1日ごとに1ずつ増加します。

  • 2026年1月1日 = 46023
  • 2026年6月17日 = 46190

この仕組みにより、日付同士の引き算で日数を求めたり、日付に数値を足して将来の日付を計算したりできます。

=TODAY() + 30    ' 30日後の日付
=TODAY() - 7     ' 1週間前の日付

Google スプレッドシートでの互換性

TODAY関数とNOW関数はGoogle スプレッドシートでも同じ構文で利用できます。動作もExcelと同一ですが、更新のタイミングが異なる場合があります。Google スプレッドシートでは設定により再計算の頻度を選択できます。

まとめ

TODAY関数とNOW関数は現在の日付・時刻を取得する基本関数です。

  • TODAY関数は日付のみ、NOW関数は日付と時刻を返す
  • 再計算のたびに値が更新される
  • 経過日数の計算、年齢の計算、期限管理に活用できる
  • 固定の値が必要な場合は値の貼り付けで対応する
  • DATE関数やEOMONTH関数と組み合わせて月初日・月末日を求められる

日付に関するあらゆる処理の出発点となる関数です。他の日付関数と合わせて使いこなしましょう。

広告スペース (article-bottom)

あわせて読みたい