=TODAY()は今日の日付を、=NOW()は現在の日付と時刻を返します。どちらも引数を取らず、ブックが再計算されるたびに更新されるので、今日見えている値は明日には違うものになります。変わらない日付が必要なら、代わりにCtrl+;(MacではControl+;)を押します。
| A | B | |
|---|---|---|
| 1 | TODAY | NOW |
| 2 | 2026-10-04 | 2026-10-04 9:22 |
上のシートは、ページが読み込まれたときの日付と時刻を表示しています。シートが再計算されるたびにNOWは現在の分に進み、TODAYは1日に1回、午前0時にだけ変わります。かっこは必須です。かっこのない=TODAYは#NAME?を返します。
ある日付までの日数
TODAY()はほかの日付と同じく日数の数値なので、引き算すればカウントダウンになります。=B2-TODAY()はB2の日付までの残り日数、=TODAY()-B2はその日付からの経過日数です。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Task | Deadline | Days left | Status |
| 2 | Report | 2026-12-31 | 88 | Open |
| 3 | Audit | 2027-03-15 | 162 | Open |
| 4 | Budget | 2025-11-30 | -308 | Overdue |
C列の数は毎日1ずつ減ります。Budgetの期限は過ぎているので、その日数はマイナスになり、状態はOverdueと表示されます。残りの営業日数を数えるなら=NETWORKDAYS(TODAY(),B2)を使います(NETWORKDAYSとWORKDAYを参照)。
ほかの数式の中でTODAYを使う
数式が日付を必要とする場所なら、どこでもTODAY()をその日付にできます。今年、今月の月末、30日後の日付、誰かの年齢(年齢の計算)などです。
| A | B | |
|---|---|---|
| 1 | What | Formula |
| 2 | Year | 2026 |
| 3 | Month | 10 |
| 4 | End of this month | 2026-10-31 |
| 5 | In 30 days | 2026-11-03 |
| 6 | First of this month | 2026-10-01 |
B5は毎日動き、B3、B4、B6は毎月1日に、B2は1月1日に動きます。-1を指定したEOMONTHは前月の末日を返すので、1を足すと今月の1日になります。
日付なしの現在時刻
NOW()は日付を整数部分に、時刻を小数部分に持っています。正午は1日の.5です。=MOD(NOW(),1)は小数部分、つまり時刻だけを残します。セルの表示形式をh:mmにすれば時刻として見え、ラベルにするならTEXTを使います。
| A | B | C | |
|---|---|---|---|
| 1 | Time | As text | Hour |
| 2 | 9:22 | 9:22 | 9 |
A2は時刻として表示された数値(1日の端数)なので、時間の計算に使えます。B2は文字列なので使えません。C2は0から23までの整数で表した時です。
変わらない日付や時刻を入れる
注文の記録や署名済みの書類のように、何かが起きた日時を記録するものにTODAYやNOWは向きません。明日になると、どの行も明日の日付を表示してしまうからです。代わりに固定の値を入力します:
| 入力するもの | Windows | Mac |
|---|---|---|
| 今日の日付 | Ctrl+; | Control+; |
| 現在の時刻 | Ctrl+Shift+; | Command+; |
| 日付と時刻 | Ctrl+;、Space、Ctrl+Shift+; | Control+;、Space、Command+; |
すでに入っている数式を固定するには、セルをコピーして、ホーム > 貼り付け > 値の貼り付けを選びます(Windows: Ctrl+Alt+Vの後VとEnter、Mac: Control+Command+Vの後「値」)。数式は、その時点で表示していた日付に置き換わります。
練習: 固定の日付で残り日数を出す
練習用に、下のシートではTODAY()の代わりにE2の固定の「基準日」を使っているので、答えは毎日同じです。自分のブックでは、この数式がE2を読んでいるところにTODAY()と書きます。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Task | Deadline | Days left | As of | |
| 2 | Launch | 2026-11-20 | 2026-10-01 |
やってみよう: C2に、E2の日付からB2の期限まで、残り何日かを計算してください。
TODAYとNOWが変わり続ける理由
TODAY、NOW、RAND、OFFSETは揮発性関数です。Excelはブックのどこかが変わるたび、ファイルを開いたとき、F9を押したときに、これらを再計算します。それがカウントダウンを最新に保つしくみですが、副作用が2つあります:
- 見ただけのファイルを閉じるときに、Excelが変更を保存するか聞いてきます。揮発性のセルが再計算されたからです。
- TODAY()のセルが何千もある大きなブックは遅くなることがあります。
=TODAY()は$H$1のような1つのセルに置き、ほかの数式はそこを参照してください。
表示される日付が間違っているなら、パソコンの時計を確かめてください。TODAYはシステムの日付を読みます。更新されないなら、ブックが手動計算になっているかもしれません。数式 > 計算方法の設定 > 自動を選んでください。
よくある質問
Excelで今日の日付を入れるには?
毎日更新される日付なら=TODAY()と入力し、二度と変わらない固定の値としての今日の日付ならCtrl+;(MacではControl+;)を押します。
ExcelのTODAYとNOWの違いは何ですか?
=TODAY()は日付だけを日数の整数で返します。=NOW()は日付と現在の時刻を返し、時刻は小数部分になります。どちらもブックが再計算されるたびに再計算されます。
Excelである日付までの日数を計算するには?
その日付から今日を引きます:=B2-TODAY()。結果は毎日1ずつ減り、その日付を過ぎるとマイナスになります。
TODAY()が変わらないようにするには?
数式そのものを止めることはできませんが、値に置き換えることはできます。セルをコピーして、ホーム > 貼り付け > 値の貼り付けを選びます。または最初からCtrl+;で日付を入力します。
Excelで現在の時刻を入れるには?
固定の値としての時刻ならCtrl+Shift+;(MacではCommand+;)を押します。数式なら、=NOW()が日付と時刻を、=MOD(NOW(),1)が時刻だけを返します。表示形式はh:mmにします。