【スプレッドシート TODAY関数】日付を表示。ずれる原因は?

TODAY関数はGoogleスプレッドシートで使用することができる関数で、今日の日付を表示することが出来ます。
これを利用することで、今日を基準とした日付、例えば、『一昨日』『昨日』『明日』『明後日』をはじめ、10日前、1週間後といった日付を取得することが出来ます。
ただし使う際には注意しなければならないこともあるので、今回はそのあたり含めて、TODAY関数について紹介・解説していきたいと思います。

スポンサーリンク
目次

TODAY関数とは

TODAY関数とは、現在の日付に対応するシリアル値を返す関数です。
シリアル値とは、スプレッドシートは1899/12/31を1、Excelは1900/1/1を1、また24時間を1として何日経過したかを表す数値です。この記事を執筆している2023年6月18日は、『45095』となります。
(いろいろあって、Excelは1900/2/29という存在しない日付をシリアル値の『60』にしてしまっているため、現時点の日では両者のシリアル値は一緒です)

TODAY関数の構文

=today()

後ろについている『()』も必要な関数の一部になるので注意してください。

TODAY関数の具体的な使い方

=today()

このように使ってください。また、今日を基準として、前だったら『-日数』、後だったら『+日数』を付け加えることによって、希望の日の日付を取得することが出来ます。

先程シリアル値を返すと言ったのですが、ちゃんと日付形式で表示されているじゃないか!と思われた方、鋭いですね。Googleスプレッドシートは、基本的に表示形式が『自動』となっており、スプレッドシート側が勝手に、TODAY関数だからきっと日付だろうということで、日付形式で表示をしてくれてます。

スプレッドシートによっては、シート全体の表示形式が『自動』に、わざとしていない可能性もあるので、表示が日付形式じゃないときは、その設定を確認してみてください。
下のスクショは、表示形式が『自動』ではなく『書式なしテキスト』となっているので、日付の表示がシリアル値のままとなっている状態のものです。

TODAY関数の注意点

TODAY関数で返してくれる今日の日付ですが、ズレてしまうことがあります。
3つの要因が考えられるので、ズレた!ということであれば、確認してみてください。

タイムゾーンの設定がズレている

Googleスプレッドシートには、タイムゾーンの設定があります。上部メニューのファイル→設定→タイムゾーンで、設定されているタイムゾーンを表示することが出来ます。
これが、使用している場所と合致していない場合、ズレてしまう可能性がありますので、正しいものに設定し直してください。

使用しているPCのシステム時間が狂っている

TODAY関数で返している日付ですが、その元になっているのは『使用しているPCのシステム時間』です。Googleスプレッドシート側のサーバーの時間ではないことに注意が必要です。
そのため、使用しているPCのシステム時間が狂っていると、正しい日付が表示されなくなってしまうので、自動で時間をあわせる機能などを活用し、システム時間が狂わないようにすると良いでしょう。

スプレッドシートを更新(リロード)していない

Googleスプレッドシートのヘルプ情報には、TODAY関数はスプレッドシートで最後に再計算された日付を返すとあります。

TODAY 関数は、最初に関数を入力した時点の日付ではなく、スプレッドシートで最後に再計算された日付を返します。
引用:Google ドキュメント エディタ ヘルプ TODAY

なので、例えば、2023年6月17日にTODAY関数を呼び出した後、そのスプレッドシートをブラウザで表示しっぱなしにして、かつ文字入力等(再計算がかかるような動作)をしていなかった場合で2023年6月18日となった場合、TODAY関数は2023年6月17日のままの表示になります。

なので、日付が変わっていないようであれば、F5ボタンを押して、リロード(更新)すると良いです。

まとめ

TODAY関数は、今日の日付を呼び出す関数です。この時間は、使用しているPCのシステム時間に依存します。また、再計算がなされた最後の日付情報を返すので、注意が必要です。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次