【Googleスプレッドシート|タイムゾーン】「TODAY()」が今日じゃないじゃん!?

スポンサーリンク

「TODAY()」が今日じゃないじゃん!?

「TODAY関数」は日の日付を返してくれるおなじみの関数です。イベントまでの残りの日数だったり、今日の日付だったり色んな数式に使えます。

ところが、ある日スプレッドシートでTODAY関数を使ってみると、「=TODAY()」の結果が今日になっていないことに気づきました。。。。

なんでよ。

ただ「=TODAY()」って入れてるだけ。間違えようがない。。。

色々、考えた結果やっと答えに行き着きましたので、同じ事で困っている方の為に書き残します。

タイムゾーン

「タイムゾーン」自体の説明はWikipediaにお任せします。→(タイムゾーン:Wikipedia

TODAY関数など、日付や時刻に関係する関数は、そもそもシステムに設定されているタイムゾーンから今の日付を取得してきています。

EXCELではPCで設定されているタイムゾーンを取得して利用しているので、PCのタイムゾーンの設定がおかしくない限りはおかしくなることは無いと思います。

ところがGoogleスプレッドシートの場合。スプレッドシート毎にタイムゾーンの設定を変更することができる。仕様になっている為、スプレッドシートのタイムゾーン設定がおかしくなっていると、今回のようにTODAY関数の結果が意図しないものとなることが起こってしまいます。

共有して使ってるシートなんかだと、誰かが変えるとみんな変わってしまうので注意したいところですね。

※参考画像:同じ日にTODAY関数を入れた2つのスプレッドシートですが、こんな出来事が起こります。

タイムゾーンの設定・変更方法

もちろん、おかしくなってるタイムゾーンは修正することが出来ます。

まずは、タイムゾーンを設定したいスプレッドシートを開いて、「ファイル」メニューから、「Googleスプレッドシートの設定」に進みます。

進むと、次のような画面が出てきますので、真ん中にある「タイムゾーン」でプルダウンを選んで設定を行いましょう。

日本は「(GMT+09:00) Tokyo」で設定すればOKです。

※Google先生の説明ページ→スプレッドシートの地域と計算の設定を変更する

まとめ

そもそもなんで変わってしまったのか?は原因が分かっていませんが、おかしいと思ったときは、タイムゾーンの設定を確認して見て下さい!^_^