- 作成日 : 2025年8月25日
NOW関数の使い方:現在の日時をリアルタイムで表示する方法
NOW関数は、現在の日時(システム日時)を自動的に取得し、セルに表示する関数です。ワークシートが再計算されるたびに最新の時刻に更新されるため、作業記録やリアルタイムダッシュボード、残り時間の表示などに活用できます。
例えば、データ入力時刻の自動記録、会議資料の最終更新日時の表示、24時間営業の店舗での時間帯別処理などを簡単に実現できます。本記事では、NOW関数の基本的な使い方から実践的な活用方法、他の関数との効果的な組み合わせまで、初心者の方にも理解しやすく解説していきます。
目次
NOW関数とは
NOW関数は、システム上の現在日時を取得し、日付と時刻を含むシリアル値として返します。ワークシートが再計算されたタイミングで自動更新されるため、常に最新の日時を参照できます。
この関数の重要な特徴は、揮発性関数であることです。つまり、ワークシートで何らかの変更があるたび、またはF9キーで再計算を実行するたびに、NOW関数の値が更新されます。これにより、常に最新の日時を表示できますが、過去の特定時点を記録したい場合は値として貼り付ける必要があります。
NOW関数の基本的な使い方
関数の構文を理解する
NOW関数の構文は非常にシンプルです。
=NOW( )
括弧内に引数は不要ですが、括弧は必須です。
基本的な使用例
実際の使用例を見てみましょう。
現在の日時を表示:
=NOW( )
この結果は「2024/03/15 14:30:45」のような形式で表示されます(表示形式により異なります)。
日付のみを表示したい場合:
=TEXT(NOW(), “yyyy/mm/dd”)
=INT(NOW()) ‘ 時刻部分を切り捨て
時刻のみを表示したい場合:
=TEXT(NOW(), “hh:mm:ss”)
=MOD(NOW(), 1) ‘ 日付部分を除去
表示形式のカスタマイズ
NOW関数の結果は、セルの書式設定で様々な形式に変更できます。
=TEXT(NOW(), “yyyy年mm月dd日 hh時mm分ss秒”)
=TEXT(NOW(), “mm/dd/yyyy hh:mm AM/PM”)
=TEXT(NOW(), “dddd, mmmm dd, yyyy”) ‘ 英語の曜日と月名
NOW関数の実践的な利用シーン
作業ログの自動記録
データ入力や更新作業の履歴を自動的に記録する際、NOW関数でタイムスタンプを生成できます。ただし、記録を固定するには、値として貼り付ける必要があります。VBAやGoogle Apps Scriptと組み合わせることで、変更時に自動的に時刻を記録するシステムを構築できます。
在庫管理システムでは、商品の入出庫時刻を記録し、在庫の動きを時系列で追跡できます。これにより、在庫回転率の分析や、ピーク時間帯の特定が可能になります。
リアルタイムダッシュボード
経営ダッシュボードやKPI管理画面で、「最終更新:〇月〇日 〇時〇分」という表示を自動更新できます。NOW関数と条件付き書式を組み合わせることで、古いデータには警告色を表示するなど、データの鮮度を視覚的に管理できます。
24時間稼働の工場やコールセンターでは、現在の時間帯に応じて表示内容を切り替えたり、シフト管理を自動化したりできます。
締切管理とカウントダウン
プロジェクトの締切日時までの残り時間をリアルタイムで表示できます。NOW関数で現在時刻を取得し、締切日時との差分を計算することで、「残り〇日〇時間〇分」という表示が可能です。
入札締切、キャンペーン終了、イベント開始までのカウントダウンタイマーとして活用でき、緊急度に応じて色分けすることで、優先順位の管理も容易になります。
NOW関数の応用テクニック
経過時間の計算
作業開始からの経過時間を計算:
=(NOW()-開始時刻)*24 ‘ 時間単位
=(NOW()-開始時刻)*24*60 ‘ 分単位
=(NOW()-開始時刻)*24*60*60 ‘ 秒単位
時間帯による条件分岐
現在の時間帯に応じて処理を変更:
=IF(HOUR(NOW())<12, “午前”, “午後”)
=IF(AND(HOUR(NOW())>=9, HOUR(NOW())<18), “営業時間内”, “営業時間外”)
定期的な更新トリガー
特定の間隔で処理を実行:
=IF(MINUTE(NOW())=0, “正時です”, “”)
=IF(MOD(MINUTE(NOW()), 15)=0, “15分間隔の処理”, “”)
NOW関数でよくあるエラーと対策
値が固定されない問題
NOW関数は常に更新されるため、過去の時刻を記録できません。
記録を固定する方法:
‘ 手動:コピー → 値として貼り付け
‘ ショートカット:Ctrl+Shift+: (現在時刻を値として入力)
VBAでの自動記録:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Cells(Target.Row, 2).Value = Now
End If
End Sub
データ入力時のタイムスタンプなど、固定した時刻が必要な場合は、NOW関数の結果を値として保存する必要があります。手動でのコピー&ペーストや、VBAマクロによる自動化が一般的な解決方法です。循環参照を使った方法もありますが、ファイルが重くなるため推奨されません。
更新頻度によるパフォーマンス低下
NOW関数を大量に使用すると、再計算のたびに処理が重くなります。
パフォーマンス改善策:
=IF(更新フラグ=”ON”, NOW(), 固定時刻)
必要な箇所のみに限定:
=$A$1 ‘ 1つのセルにNOW()を入力し、他のセルは参照
大規模なワークシートでは、NOW関数の使用を最小限に抑え、1つのセルに入力した結果を他のセルから参照する方法が効率的です。また、自動計算を手動計算に切り替えることで、意図しない更新を防げます。
タイムゾーンの問題
NOW関数はローカルタイムを返すため、異なるタイムゾーンでの使用に注意が必要です。
UTC時刻への変換:
=NOW()-タイムゾーン差/24 ‘ 日本時間からUTCは-9時間
特定タイムゾーンの表示:
=”東京: ” & TEXT(NOW(), “hh:mm”) &
” / NY: ” & TEXT(NOW()-13/24, “hh:mm”)
国際的なプロジェクトでは、タイムゾーンの違いを考慮する必要があります。基準となるタイムゾーン(通常UTC)を決め、各地域の時刻を計算で求めることで、混乱を避けられます。サマータイムの考慮も必要な場合があります。
日付のシリアル値の理解不足
エクセルの日付時刻は数値として扱われることを理解していないと、計算エラーが発生します。
シリアル値の確認:
=NOW() ‘ 通常表示
=VALUE(NOW()) ‘ 数値表示(例:44636.5)
計算での注意点:
=NOW()+1 ‘ 1日後
=NOW()+1/24 ‘ 1時間後
=NOW()+1/24/60 ‘ 1分後
エクセルでは、1日を1として時刻を小数で表現します。この仕組みを理解することで、日時の計算が容易になります。例えば、0.5は12時間(正午)を表します。
NOW関数と他の関数との組み合わせ
TODAY関数との使い分け
日付のみが必要な場合との比較:
=NOW() ‘ 2024/03/15 14:30:45
=TODAY() ‘ 2024/03/15
=NOW()-TODAY() ‘ 0.604(現在時刻の小数部分)
NOW関数は日時を、TODAY関数は日付のみを返します。用途に応じて使い分けることで、不要な時刻情報を含まない、より効率的な処理が可能です。日付のみの比較ではTODAY関数を使用することで、時刻の違いによる誤判定を防げます。
DATEDIF関数での期間計算
現在までの経過期間を詳細に表示:
=DATEDIF(開始日, NOW(), “Y”) & “年” &
DATEDIF(開始日, NOW(), “YM”) & “ヶ月” &
DATEDIF(開始日, NOW(), “MD”) & “日”
プロジェクト開始からの経過時間や、年齢計算などに活用できます。DATEDIF関数は隠し関数ですが、期間計算には非常に便利です。勤続年数や契約期間の管理に適しています。
TEXT関数での柔軟な表示
曜日や和暦を含む表示:
=TEXT(NOW(), “ggge年m月d日(aaa) h時m分”) ‘ 令和6年3月15日(金) 14時30分
=TEXT(NOW(), “[$-409]dddd, mmmm d, yyyy h:mm AM/PM”) ‘ Friday, March 15, 2024 2:30 PM
地域や用途に応じた表示形式を簡単に実現できます。報告書の日付表示や、多言語対応のシステムで有効です。TEXT関数の書式コードを活用することで、ほぼ無限の表示パターンが可能です。
IF関数での営業時間判定
複雑な営業時間の判定:
=IF(OR(WEEKDAY(NOW(), 2)>5, HOUR(NOW())<9, HOUR(NOW())>=18),
“営業時間外”, “営業時間内”)
=IF(AND(WEEKDAY(NOW(), 2)<=5, TIME(HOUR(NOW()), MINUTE(NOW()), 0)>=TIME(9,0,0),
TIME(HOUR(NOW()), MINUTE(NOW()), 0)<TIME(18,0,0)),
“営業中”, “休業中”)
平日・休日、営業時間を考慮した自動判定により、問い合わせ対応の可否や、システムの稼働状態を表示できます。コールセンターやサポートデスクの運用に有効です。
NETWORKDAYS関数での営業日計算
現在から締切までの営業日数:
=NETWORKDAYS(NOW(), 締切日) & “営業日”
=NETWORKDAYS(INT(NOW()), 締切日) –
IF(AND(WEEKDAY(NOW(), 2)<=5, HOUR(NOW())>=18), 1, 0)
土日祝日を除いた実働日数を計算できます。当日の営業時間が終了している場合は1日減らすなど、より精密な計算も可能です。納期管理や工程管理で重要な機能です。
MINUTE/SECOND関数での詳細時刻
秒単位の精密な表示:
=HOUR(NOW()) & “:” & TEXT(MINUTE(NOW()), “00”) & “:” & TEXT(SECOND(NOW()), “00”)
=”更新時刻: ” & TEXT(NOW(), “hh:mm:ss”) & ” (次回更新まで” &
60-SECOND(NOW()) & “秒)”
リアルタイムモニタリングや、精密な時間管理が必要なシステムで活用できます。製造ラインの稼働監視や、金融取引のタイムスタンプなどで使用されます。
NOW関数は、現在日時の取得と時間管理に活用できる
NOW関数は、現在の日時を自動的に取得し、再計算のたびに更新される動的な関数です。作業ログの自動記録、ダッシュボードの更新時刻表示、カウントダウンの残り時間計算など、リアルタイム性が求められる業務に最適です。
さらに、TEXT・IF・NETWORKDAYS関数などと組み合わせることで、表示形式の調整や条件分岐、営業日数の算出といった応用的な処理も可能になります。
一方で、常に値が変化する特性に注意が必要な場面もあり、記録として残したい場合は「値として貼り付ける」などの工夫が求められます。NOW関数を正しく活用することで、時間ベースの管理や自動化処理の精度が高まり、業務効率化に貢献できます。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
DSUM関数の使い方:条件に一致するデータの合計を計算する方法
DSUM関数は、データベース形式の表から指定した条件に一致するレコードの合計を計算する関数です。売上データの条件付き集計、在庫管理での特定商品の合計、経費精算での部門別集計など、複雑な条件での合計計算が必要な場面で活用されます。 例えば、特…
詳しくみるExcelのMEDIAN関数の使い方:中央値の計算からデータ分析への活用まで
ExcelのMEDIAN関数は、一連の数値の中央に位置する値、つまり中央値を求めるための関数です。平均値(AVERAGE関数)と似ていますが、MEDIAN関数はデータの偏りの影響を受けにくいため、より実態に近い数値を把握したい場合に適してい…
詳しくみるExcelのFLOOR関数とは?使い方や具体例、ROUND関数との違いを解説
数値を指定した基準値で切り捨てるなら、ExcelのFLOOR関数(フロア関数)が最適です。 この関数を使えば、「100円単位で切り捨てる」「5分単位で丸める」といった処理を一瞬で実現できます。手動で桁を揃えたり、IF関数で複雑な条件式を書い…
詳しくみるExcelのISBLANK関数とは?空白セルの判定とIF関数との組み合わせを解説
ISBLANK関数(読み方:イズ・ブランク関数)は、Excelでセルが空かどうかを判定するシンプルかつ実用的な関数です。 入力漏れチェックや条件付き処理に活用でき、IF関数などと組み合わせることで、見落としやエラーのないスマートなデータ管理…
詳しくみるCOUNT関数の使い方とは?スプレッドシートで使える?
COUNT関数は、指定した範囲内の数値セルの数をカウントする非常に便利な関数です。スプレッドシートにおいても使用可能で、データ分析や集計を行う際に重宝します。この記事では、COUNT関数の基本的な使い方から、具体的な利用シーン、関連するCO…
詳しくみるエクセルで標準偏差を求める関数をわかりやすく解説
エクセルを活用してデータ分析を行う際、標準偏差を求めることは非常に重要です。標準偏差は、データの散らばり具合を示し、より正確な情報を得るために役立ちます。エクセルでは、標準偏差を簡単に計算できる関数が用意されており、これにより数値データの理…
詳しくみる