Excel|TODAY関数とNOW関数の違いとは?目的別の使い分けガイド

 

 


 

 

01. はじめに:なぜこの2つを正しく使い分けるべきか

Excelで日付や時刻を扱うときに最もよく使われる関数が TODAY()NOW() です。

一見すると似たような働きをするこの2つの関数ですが、実はそれぞれの取得できる値・用途・更新タイミングが異なります。

正しく使い分けないと、たとえば以下のような問題が起きることがあります

  • 「日付だけを表示したいのに、時刻まで入ってしまう」
  • 「毎日更新してほしくないのに、関数が勝手に変わって困る」
  • 「関数を使ったタイムスタンプが再計算されてしまい、履歴が残らない」

この記事では、TODAY関数とNOW関数の違いと使い方をわかりやすく解説します。どちらを使えばよいか迷ったときの判断基準や、実務での使い分けパターン、注意点も具体例を交えて紹介していきます。

「どっちを使えばいいの?」というモヤモヤを、この記事でスッキリ解消しましょう。

02. TODAY関数の特徴と使い方

TODAY関数は、Excelで「今日の日付」を自動的に取得するためのシンプルな関数です。

基本構文

=TODAY()

引数は不要で、関数を入力するだけでその日の日付が返されます。

表示される値の例

  • 2025/07/22
  • 2025年7月22日(書式設定によって異なります)

主な用途

  • 作業日や提出日を自動で表示したいとき
  • 今日が締切かどうかを比較する判定処理
  • スプレッドシートを開くたびに「その日」の日付を表示したい

TODAY関数が便利な理由

  • シンプルでエラーが少ない
  • 更新の必要がない(自動的に変わる)
  • 日報や管理表などに適している

注意点

TODAY関数で得られる日付は「毎日更新される」点に注意してください。履歴や記録として「いつ入力したか」を固定したい場合には向きません。

また、TODAY関数では「時刻の情報」は一切取得できないため、「何時に作業したか」まで残したいときには不十分です。

03. NOW関数の特徴と使い方

NOW関数は、Excelで「現在の日付と時刻」を同時に取得できる関数です。日付だけでなく「何時何分か」まで表示されるため、タイムスタンプ的な用途に最適です。

基本構文

=NOW()

こちらも引数は不要。セルに入力するだけで、システムの現在日時が表示されます。

表示される値の例

  • 2025/07/22 10:42
  • 2025年7月22日 10時42分(書式設定により変化)

主な用途

  • 作業時刻・提出時刻などの記録
  • リアルタイムでのログ・タイムスタンプ表示
  • 関数で時刻を管理・計算したいとき

NOW関数が便利な理由

  • 日付と時刻が同時に得られるため、入力手間がない
  • タイムスタンプの代わりとして使える
  • 時間差や経過時間の計算にも使いやすい

注意点

NOW関数もTODAY関数と同様、「再計算のたびに値が変わる」性質を持っています。

具体的には、以下のタイミングで値が更新されます

  • ファイルを開いたとき
  • 何かセルを編集したとき
  • F9キーを押して再計算したとき

したがって、NOW関数は「現在の時刻を常に表示する」には適していますが、「一度記録した日時を固定したい」ときには不向きです。

04. TODAYとNOWの違い一覧表で比較

ここでは、TODAY関数とNOW関数の違いを視覚的にわかりやすくするために、主な項目ごとに比較した一覧表を紹介します。

比較項目 TODAY() NOW()
取得する情報 日付のみ 日付+時刻
関数の構文 =TODAY() =NOW()
表示例 2025/07/22 2025/07/22 11:15
主な用途 作業日、提出日、日付比較 タイムスタンプ、時刻記録、ログ取得
更新タイミング 再計算時に更新 再計算時に更新
再計算による変化 日付が「今日」に変わる 日時が「その時点」に変わる
時刻の取得可否 できない できる
おすすめ場面 日報、申請書、作業予定表 履歴管理、進捗チェック、時刻付き記録

このように、TODAY関数とNOW関数は似ているようで用途が異なります。目的や記録の粒度に応じて、適切に選ぶことが重要です。

05. こんなときはどっち?目的別おすすめ関数

TODAY関数とNOW関数は、取得する情報の違いだけでなく、用途にも向き不向きがあります。以下のような目的別に、どちらの関数が適しているかを見ていきましょう。

日付だけで十分なとき:TODAY()

  • 作業日を自動表示したい
  • 日報の記入日を自動表示したい
  • 期限までの日数を計算したい

おすすめ関数: =TODAY()

日付+時刻の正確な履歴を残したいとき:NOW()

  • タイムスタンプ(記録時刻)を残したい
  • 更新時間を把握したい
  • 時刻ベースでの差分や経過時間を計算したい

おすすめ関数: =NOW()

日時は不要、時間だけが知りたいとき:NOW() – TODAY()

  • 「何時に作業したか」だけ記録したい
  • 時刻をグラフ化したい(例:ヒートマップ)

おすすめ式: =NOW() - TODAY()

セルの表示形式を「時刻(hh:mm:ss)」に変更することで、時刻だけを表示できます。

一度だけ記録したら変更したくないとき

どちらの関数も「再計算されると値が更新される」ため、一度記録した日時を固定化したい場合には不向きです。

その場合は、関数を使って表示させたあとで「コピー → 値貼り付け」で固定するか、VBAなどの別手段を検討しましょう。

06. 実務でよくある勘違い・失敗例と対策

TODAY関数やNOW関数は非常に便利ですが、使い方を誤ると意図しない挙動になってしまうことも。ここでは、実務でよくある「やってしまいがち」な失敗例と、それを防ぐための対策を紹介します。

失敗例①:関数で記録した日付・時刻が翌日変わっていた

問題:タイムスタンプのつもりでNOW関数を使ったが、翌日開いたら日時が変わっていた。

原因: 関数が再計算により更新された

対策:

  • 記録後にコピー → 値の貼り付けを行う
  • 固定したいなら関数よりVBAを検討

失敗例②:日付だけを表示したかったのに時刻まで表示された

問題:NOW関数を使ったら、時刻も一緒に表示されてしまった。

原因: NOWは時刻も含む関数

対策:

  • 日付だけなら =TODAY() を使う
  • 書式設定で時刻部分を非表示にするのは一時的な対処にすぎない

失敗例③:関数があるのに計算されない、更新されない

問題:日付が更新されない、NOW関数の値が古いまま

原因:

  • 再計算が行われていない
  • 手動計算モードに設定されている

対策:

  • Excelの「数式」タブ → 「計算方法の設定」で「自動」になっているか確認
  • 必要に応じて F9 キーで手動再計算

失敗例④:IF関数とNOWの組み合わせで毎回変わってしまう

問題:=IF(A1<>"", NOW(), "") で記録したつもりが、毎回時刻が変わってしまう

対策:

  • 「IF × NOW」はあくまで表示であり、記録ではない
  • 値を固定化したい場合は VBA で「入力時のみ」記録する処理を作る必要がある

関数は強力ですが、仕組みを知らずに使うと思わぬ落とし穴があります。上記の失敗例を参考に、正しく使っていきましょう。

07. 応用テク:NOW-TODAYで「時刻だけ」を取り出す

Excelでは、NOW関数を使って日付と時刻の両方を取得できますが、「時刻だけ」を表示したい場合もあります。

たとえば、「作業開始時刻」や「打刻時間」だけを記録したいときに、日付部分は不要なこともあります。

NOW関数からTODAY関数を引く

このような場合には、以下の式を使って 時刻だけを抽出 できます

=NOW() - TODAY()

この計算は、「現在の日時」から「今日の日付(00:00:00)」を引くことによって、経過時間(=現在の時刻)だけを取り出すという仕組みです。

表示形式に注意!

この式をそのまま入力すると、Excelの初期設定では「シリアル値(例:0.54028)」のように表示される場合があります。

その場合は、次の手順で表示形式を変更してください

  1. 対象セルを右クリック →「セルの書式設定」
  2. 「表示形式」タブ →「時刻」を選択
  3. 希望の形式(hh:mm、hh:mm:ssなど)を選ぶ

表示例

  • 10:45
  • 16:02:30

活用場面

  • 打刻時間の可視化
  • 時間別のグラフ作成(ヒートマップなど)
  • 入力履歴の時刻だけを残したいとき

関数1つで簡単に時刻のみを取得できるので、ぜひ実務で活用してみてください。

08. 関数の更新タイミングと自動再計算の仕組み

TODAY関数やNOW関数は、常に最新の値を表示するわけではないという点に注意が必要です。実は、これらの関数が更新されるタイミングは決まっており、再計算という仕組みによって動いています。

再計算が行われる主なタイミング

  • Excelファイルを開いたとき
  • ブック内のセルが変更されたとき
  • F9キーで手動再計算を実行したとき
  • 他の関数や数式がトリガーとなってシートが更新されたとき

自動 vs 手動の計算モード

Excelには「自動計算」と「手動計算」のモードがあります。自動計算がオンであれば、上記のタイミングですぐに再計算されますが、手動モードにしていると関数が更新されません。

確認・変更手順

  1. Excelの「数式」タブを開く
  2. 「計算方法の設定」グループを確認
  3. 「自動」または「手動」から選択可能

通常は「自動」のままで問題ありませんが、複雑なブックで動作が重くなる場合や、再計算させたくない場合には「手動」にすることもあります。

F9キーで強制再計算

手動モードのときや、確実にNOW/TODAY関数を更新したいときは、F9キーを押すことで再計算が実行されます。

再計算をトリガーにした関数制御は非推奨

「再計算されたときだけ値を変える」ような関数制御は不安定になることが多く、正確な記録を取りたい場合にはVBAなどの明示的な記録方法が推奨されます。

この再計算の仕組みを理解しておくことで、NOW/TODAY関数をより安全に、かつ正確に活用できます。

09. まとめ:目的に応じて正しく選ぼう

TODAY関数とNOW関数は、どちらもExcelで非常によく使われる日付・時刻関数ですが、使い方を誤ると「思っていた結果と違う…」となりがちです。

今回の記事では、それぞれの関数の違い、使いどころ、再計算や固定化の注意点まで詳しく紹介しました。

改めて、ポイントを整理しましょう

  • =TODAY() は「日付のみ」表示。日報や日付管理に最適。
  • =NOW() は「日付+時刻」表示。タイムスタンプや履歴管理に便利。
  • NOW-TODAY で「時刻だけ」を取り出す応用も可能。
  • どちらも再計算で値が変わるため、記録用途には「コピーして値貼り付け」や VBA活用が必要。

関数の便利さと限界を正しく理解し、「今この場面で必要なのはどちらか?」と考えて使い分けることが、業務の効率化につながります。

この記事が、あなたのExcel活用の一助となれば幸いです。


この記事は、「Excelで日付と時刻を自動入力する方法」全体の一部です。

あわせて読みたい記事はこちら

 

コメント

タイトルとURLをコピーしました