
- 01. はじめに:なぜこの2つを正しく使い分けるべきか
- 02. TODAY関数の特徴と使い方
- 03. NOW関数の特徴と使い方
- 04. TODAYとNOWの違い一覧表で比較
- 05. こんなときはどっち?目的別おすすめ関数
- 06. 実務でよくある勘違い・失敗例と対策
- 07. 応用テク:NOW-TODAYで「時刻だけ」を取り出す
- 08. 関数の更新タイミングと自動再計算の仕組み
- 09. まとめ:目的に応じて正しく選ぼう
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)」のように表示される場合があります。
その場合は、次の手順で表示形式を変更してください
- 対象セルを右クリック →「セルの書式設定」
- 「表示形式」タブ →「時刻」を選択
- 希望の形式(hh:mm、hh:mm:ssなど)を選ぶ
表示例
- 10:45
- 16:02:30
活用場面
- 打刻時間の可視化
- 時間別のグラフ作成(ヒートマップなど)
- 入力履歴の時刻だけを残したいとき
関数1つで簡単に時刻のみを取得できるので、ぜひ実務で活用してみてください。
08. 関数の更新タイミングと自動再計算の仕組み
TODAY関数やNOW関数は、常に最新の値を表示するわけではないという点に注意が必要です。実は、これらの関数が更新されるタイミングは決まっており、再計算という仕組みによって動いています。
再計算が行われる主なタイミング
- Excelファイルを開いたとき
- ブック内のセルが変更されたとき
- F9キーで手動再計算を実行したとき
- 他の関数や数式がトリガーとなってシートが更新されたとき
自動 vs 手動の計算モード
Excelには「自動計算」と「手動計算」のモードがあります。自動計算がオンであれば、上記のタイミングですぐに再計算されますが、手動モードにしていると関数が更新されません。
確認・変更手順
- Excelの「数式」タブを開く
- 「計算方法の設定」グループを確認
- 「自動」または「手動」から選択可能
通常は「自動」のままで問題ありませんが、複雑なブックで動作が重くなる場合や、再計算させたくない場合には「手動」にすることもあります。
F9キーで強制再計算
手動モードのときや、確実にNOW/TODAY関数を更新したいときは、F9キーを押すことで再計算が実行されます。
再計算をトリガーにした関数制御は非推奨
「再計算されたときだけ値を変える」ような関数制御は不安定になることが多く、正確な記録を取りたい場合にはVBAなどの明示的な記録方法が推奨されます。
この再計算の仕組みを理解しておくことで、NOW/TODAY関数をより安全に、かつ正確に活用できます。
09. まとめ:目的に応じて正しく選ぼう
TODAY関数とNOW関数は、どちらもExcelで非常によく使われる日付・時刻関数ですが、使い方を誤ると「思っていた結果と違う…」となりがちです。
今回の記事では、それぞれの関数の違い、使いどころ、再計算や固定化の注意点まで詳しく紹介しました。
改めて、ポイントを整理しましょう
- =TODAY() は「日付のみ」表示。日報や日付管理に最適。
- =NOW() は「日付+時刻」表示。タイムスタンプや履歴管理に便利。
- NOW-TODAY で「時刻だけ」を取り出す応用も可能。
- どちらも再計算で値が変わるため、記録用途には「コピーして値貼り付け」や VBA活用が必要。
関数の便利さと限界を正しく理解し、「今この場面で必要なのはどちらか?」と考えて使い分けることが、業務の効率化につながります。
この記事が、あなたのExcel活用の一助となれば幸いです。
この記事は、「Excelで日付と時刻を自動入力する方法」全体の一部です。
あわせて読みたい記事はこちら
- NOW関数で自動タイムスタンプを入力する方法
- 時刻だけを表示する方法(NOW関数 – TODAY関数)
- Excelでチェックボックスを複数シートで連動させる方法(VBA)
- 【ピラー記事】Excelで日付・時刻を自動入力する方法

コメント