
- 01.はじめに
- 02.この記事でできること
- 03.TODAY関数とNOW関数の違いと基本構文
- 04.タイムスタンプに最適な関数の選び方
- 05.セルが更新されたときに日時を記録したい(応用テク)
- 06.関数で入力した日付を「固定化」する方法
- 07.関数でタイムスタンプを使う際の注意点
- 08.まとめ
01.はじめに
業務でExcelを使っていると、作業の記録や報告のために「いつ入力されたか」「いつ処理されたか」といった情報を残したい場面があります。
こうした情報を記録するために使われるのが「タイムスタンプ」です。日付や時刻を入力して残すことで、作業履歴や進捗管理が可能になります。
しかし、手動で日付や時刻を入力する方法ではミスや手間が増えがちです。特に、入力忘れや記入ミスがあると、後で確認できず業務に支障が出ることもあります。
そこでおすすめしたいのが、Excel関数を使ってタイムスタンプを自動的に入力する方法です。関数を使えば、わざわざ手で入力しなくても、現在の日時を正確にセルに表示させることができます。
この記事では、「TODAY関数」「NOW関数」などを活用して、関数だけで実現できるタイムスタンプの入力方法を、初心者でもわかりやすく解説していきます。
02.この記事でできること
この記事では、Excel関数を使って「自動的にタイムスタンプを入力・更新する方法」を学ぶことができます。
具体的には、次のようなスキルを身につけられます:
- =TODAY()関数で「今日の日付」を自動表示する
- =NOW()関数で「現在の日時(日時+時刻)」を取得する
- NOW関数からTODAY関数を引いて、時刻だけを取り出す方法
- 入力されたセルの変化に応じて自動でタイムスタンプを残すテクニック
- 自動更新される関数の値を固定値に変換する方法
- 関数を使うときの注意点や、誤解されがちな動作の解説
Excelで関数を使って効率的に日付や時刻を記録したい方、関数とVBAの違いや使い分けに悩んでいる方にとって、実務ですぐ役立つ内容となっています。
関数だけでどこまでできるのか?という疑問にもお答えしつつ、必要に応じてVBAや手動操作との組み合わせについても触れていきます。
03.TODAY関数とNOW関数の違いと基本構文
Excelでタイムスタンプを記録するための代表的な関数が TODAY関数 と NOW関数 です。この2つは非常に似ていますが、用途に応じて明確に使い分ける必要があります。
TODAY関数とは
=TODAY() は、その日の日付(年・月・日)を自動で表示する関数です。書式を変更しない限り、「2025/07/19」のような形式で表示されます。
特徴
- 表示されるのは日付のみ(時刻は含まない)
- ブックを開いたときや再計算時に自動で更新される
- 打刻というよりは、その日の作業日付を表示する用途に適している
NOW関数とは
=NOW() は、現在の「日付+時刻」を表示する関数です。たとえば「2025/07/19 14:52」といった形式で、日時の両方が取得されます。
特徴
- 日付と時刻がセットで表示される
- 再計算時に更新されるため、常に“その時点”の値が表示される
- タイムスタンプ用途にもっとも適した関数
TODAY関数とNOW関数の比較表
| 項目 | TODAY() | NOW() |
|---|---|---|
| 取得できる情報 | 日付のみ | 日付+時刻 |
| 更新タイミング | 再計算時 | 再計算時 |
| 用途 | 作業日付の表示 | タイムスタンプの記録 |
どちらも自動更新されるという共通点がありますが、「何を記録したいか」によって選ぶ関数は変わります。
04.タイムスタンプに最適な関数の選び方
タイムスタンプを記録する目的によって、TODAY関数とNOW関数のどちらを使うべきかは変わってきます。ここでは、目的別に最適な関数の選び方を紹介します。
日付だけを記録したい場合:=TODAY()
「いつの作業か」「日付単位の記録だけでよい」という場面では、=TODAY() がシンプルかつ最適です。
使用例
=TODAY()
表示例:2025/07/22
用途:日報、チェックリスト、勤務日付など
日付+時刻の両方を記録したい場合:=NOW()
「作業時間を含めた詳細な記録をしたい」「時系列で履歴を残したい」といった場合には、=NOW() が便利です。
使用例
=NOW()
表示例:2025/07/22 09:58
用途:ログ記録、申請処理の時刻記録、履歴管理など
時刻だけを記録したい場合:=NOW() – TODAY()
「今日の何時に作業したか」だけを記録したい場合は、NOW関数からTODAY関数を引くことで、時刻のみを取得できます。
=NOW() - TODAY()
セルの表示形式を「時刻(hh:mm:ss)」に変更することで、以下のように表示されます
表示例:09:58
用途:打刻時間、受付時間、時刻差分の計算など
まとめ:選び方早見表
| 記録したい情報 | 使う関数 | 補足 |
|---|---|---|
| 日付のみ | =TODAY() | 常に「今日」の日付が表示される |
| 日付+時刻 | =NOW() | 日時が常に自動更新される |
| 時刻だけ | =NOW() – TODAY() | セルの書式を「時刻」に変更 |
05.セルが更新されたときに日時を記録したい(応用テク)
「A列に入力があったとき、自動でB列にタイムスタンプを記録したい」といったニーズは非常に多くあります。
このような仕組みを関数だけで完全に自動化するのは困難ですが、ある程度までは工夫次第で可能です。
IF関数 × NOW関数による半自動タイムスタンプ
以下のような式を使うことで、ある条件に応じてNOW関数が働くようにできます。
=IF(A2<>"", NOW(), "")
この式では、A2セルに何か入力があったときに、B2セルに現在日時が表示されます。
注意点
- NOW関数は「再計算のたびに値が変わる」ため、タイムスタンプが固定されません。
- 本当の意味で「変化があったタイミング」を記録するには、VBAの使用が必要です(後述予定)。
循環参照を活用したタイムスタンプの固定化(中級者向け)
Excelの設定で「反復計算(循環参照)」を許可した上で、次のような式を使う方法もあります
=IF(A2<>"", IF(B2="", NOW(), B2), "")
この式では、A2に入力があったときだけNOW()が動作し、それ以降はB2の値を保持します。つまり、一度入力されたら時刻を固定できます。
この方法を使うには
- Excelの「ファイル」→「オプション」→「数式」タブを開く
- 「反復計算を有効にする」にチェックを入れる
- 最大反復回数や変化量は初期値のままでOK
注意点
- このテクニックは意図しない循環参照エラーを招く可能性があるため、慎重に設計しましょう。
- 複雑なシートではVBAによる制御のほうが安全かつ確実です。
06.関数で入力した日付を「固定化」する方法
関数で表示されるタイムスタンプ(=NOW(), =TODAY()など)は便利ですが、再計算されるたびに値が更新されてしまいます。
「一度記録したら変更したくない」「提出済の記録が勝手に変わるのは困る」場合は、固定化が必要です。
方法①:コピー → 値の貼り付け
最もシンプルな固定方法は、「関数が入ったセルをコピーして、値として貼り付ける」やり方です。
- 対象のセルをコピー(Ctrl + C)
- 右クリック → 「値として貼り付け(Ctrl + Alt + V → V)」
これにより、関数ではなく、現在の表示値だけが残り、更新されることはなくなります。
方法②:ショートカットで固定入力
「Ctrl + ;(日付)」「Ctrl + Shift + ;(時刻)」を使えば、関数を使わずに最初から固定値を手入力できます。
この方法は「再計算されない」ことが前提の業務(日報、報告書など)に向いています。
方法③:VBAと組み合わせて自動固定(応用)
入力されたときにNOW関数ではなく「その時刻の固定値」を直接入力するには、VBA(マクロ)の活用が有効です。
例:セルに入力があったら隣のセルに時刻を記録するマクロ
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
Target.Offset(0, 1).Value = Now
End If
End Sub
このような手法は次章(注意点)や別記事で詳しく扱いますが、関数だけでは困難な「固定タイムスタンプの自動記録」を可能にします。
07.関数でタイムスタンプを使う際の注意点
関数によるタイムスタンプ入力は非常に便利ですが、いくつか注意しておくべき落とし穴があります。ここでは、実務でよくあるトラブルとその回避策を紹介します。
自動更新に注意:値が変わるタイミングを理解する
=NOW()や=TODAY()は、以下のタイミングで自動更新されます
- ブックを開いたとき
- 任意のセルを編集・確定したとき
- F9キーで再計算を手動実行したとき
つまり、記録として「入力された時点の値」を保持したい場合には不向きです。更新されることを前提に設計しましょう。
誤って再計算すると日時が変わる
「一度入力されたタイムスタンプが、再計算後に変わってしまった」という声は多く、印刷前に値が変わってしまうなどの事故もあります。
このようなときは、関数を使いっぱなしにせず、定期的にコピーして値貼り付けしておくことが有効です。
他の関数と組み合わせる際の挙動に注意
IF関数や条件付き書式などと併用した場合、関数の再評価により意図せず値が変わることがあります。特に以下のようなケースで注意が必要です
- IF(A1<>””, NOW(), “”) のような入力時関数
- 入力済セルを触っただけでタイムスタンプが再生成される
関数を使った自動記録は“擬似的”である
関数によるタイムスタンプ記録は見た目上の記録にすぎず、完全に自動かつ固定された履歴を残すには、VBAや外部仕組みが必要です。
関数は便利ですが万能ではない点を理解し、目的に応じて適切に使い分けることが大切です。
08.まとめ
Excelでタイムスタンプを関数で記録する方法は、業務の効率化や入力ミス防止に非常に役立ちます。
この記事では、主に以下のポイントを解説しました
- =TODAY() は「日付のみ」、=NOW() は「日時を含む」
- NOW-TODAYで「時刻だけ」を取り出すことも可能
- セルの値に応じてタイムスタンプを表示するには IF × NOW の応用
- 関数によるタイムスタンプは自動更新されるため、必要に応じて固定化が必要
- 完全な自動固定を目指すなら VBA やマクロの併用が現実的
関数だけでも十分に実務で活用できますが、更新の仕組みや制限を理解せずに使うと、意図せぬ値の変化に戸惑うこともあります。
ぜひこの記事を参考に、あなたの作業環境や目的に合ったタイムスタンプの記録方法を構築してみてください。関数、ショートカット、VBAをうまく使い分ければ、Excelの入力作業がぐっとスマートになります。
この記事は、Excelで日付と時刻を自動入力する方法の一部です。
関連記事もチェック!

コメント