いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)NOW関数の結果はシート内でも一致しない

 GoogleスプレッドシートのNOW関数の出力についてです。

  • NOW関数の戻り値は、(再)計算の際にシート内の書き換え順序に沿って少しずつ違ったものになります。つまりシート内の各セルにおいて一般に一致しません。

手順

f:id:accs2014:20220406064601p:plain:right:w550

 シート内の20個のセルに「=NOW()」という式を入力した様子です。
 見た目は同じ結果が返っています。


 そこで、これらの20セルを選択した状態でメニューから「表示形式」→「数字」→「カスタム数値形式」と進みます。

f:id:accs2014:20220406064605p:plain


f:id:accs2014:20220406064608p:plain:right:w550

 ダイアログが現れますので、形式を「yyyy/mm/dd h:m:s.000」と指定します。
 これで時刻がミリ秒単位で表示されます。
 また、適用と同時に再計算されるので、すべてのセルが適用ボタンをクリックした時刻に書き換わることとなりますが……


f:id:accs2014:20220406064612p:plain:right:w550

 結果はこうなりました。
 そもそもNOW関数でミリ秒まで出力されるのも留意すべき点です(ショートカットの「Ctrl + Shift + :」も同様)が、その値はセル間でも一致するわけではないことがわかります。

 つまり最初の画像のように秒まで表示させていたときに表示がすべて一致していたのもいわば偶然で、タイミングによっては異なるものとなります(ミリ秒の部分が1から499までなら切り捨てられ、500以上なら切り上げられます)。

 ちなみにExcelのNOW関数の戻り値はブック内で一致するようです。