見出し画像

【小休止】現在の日時をサクッと入力する2つの方法 (タイムスタンプ番外編2)

タイムスタンプシリーズの番外編を1回やって、関数カレンダーのネタに移ろうかと思ってましたが、タイムスタンプ関連で書いておきたいネタをもう一つ思い出しました。今回は 番外編その2として記事を書きます。

前回の番外編「Googleフォームの回答を日付で絞り込む」↓

自動タイムスタンプではなく、今回はもう少しシンプルなGoogleスプレッドシートで 今現在の日時を簡単にセルに入れる方法を 2つ紹介します。

自動タイムスタンプ機能とは言えないけど、どちらも キーボードオンリーサクッと「現在の日時」を入力できるんで、人によっては使える!ってなるかも。


Q. 現在の日時を簡単にセルに入力したい

皆さんだったら、どんな解決策が思いつくでしょうか?

↓ここから回答です。



このお題に対して2つの回答を用意しました。

  1. ショートカットを利用する

  2. 「プルダウンリスト」とNOW関数を使う

それぞれ解説していきます。


A1. ショートカットを利用する

これは正攻法です。Excelと若干キーは違いますが、Googleスプレッドシートにも 日付や日時を入れるショートカットが用意されています。

・日付 ・・・ Ctrl + :
・時刻 ・・・ Ctrl + Shift + :
・日時 ・・・ Ctrl + Alt + Shift + :   ← 今回使うのはこれ

Windows版です。MacやChromebookユーザーは以下のサイトを参照

日時の場合は Ctrl + Alt + Shift + : の 4キー押しって・・・。
手がつりそうなショートカットです。

でも、これでセルへの日時入力がサクっと出来ると思えば、加藤鷹のゴールドフィンガー並みの4点同時攻めも頑張れそうな気がします。さっそく秘技伝授を読み返さなければw

使ってみました。

手動だけどサクッとタイムスタンプ

入力後にキーボードの ↓キー を押すことで、キーボード操作だけで連続で日時(タイムスタンプ)がサクサク入力できました。

ただし、あまり早いペースで連続で使ってるとショートカットが効かないこともあるので注意。

その他の注意点もまとめると、以下のようになります。


ショートカットで現在日時(タイムスタンプ)入力の注意点

・早いペースで連続で使うとショートカットが効かない時がある
キーボードショートカットなのでモバイルアプリ版では使えない
そもそも複雑なショートカットをユーザーに覚えさせるのが難しい

このショートカットって私ですら忘れちゃうんですよね。

これを カット&ペーストのショートカットすら使えない 一般的な ITに強くないユーザーに使ってもらうのは、ちとハードルが高いと思うのです。

そんな時は、もう一つの方法が良いかもしれません。


A2. 入力規制 「プルダウンリスト」とNOW関数を使う

もう一つは、プルダウンリストと NOW関数を使った方法です。
こっちは準備が必要ですが、ユーザー側としてはシンプルな動作でわかりやすいかもしれません。

使ってる人も多いと思いますが、プルダウンリストは、
メニューから データ > 入力規制 で設定できる機能の一つです。
選択肢のリストは、直接入力もありますが「セル範囲」での指定ができます。


実はこのプルダウンの「リストを範囲で指定」、指定した範囲が関数による出力結果だったとしても、プルダウンで選択したら 値として入力されるという特性があります。

GASの setValue や コピーして値を貼り付けと同じ動きなのです。
なかなか面白い特性ですよね。

この特性と NOW関数を組み合わせることで、プルダウンでのタイムスタンプ(日時の簡単入力)が実現できそうです。


プルダウンを使ったタイムスタンプの事前設定

上記のような感じで、事前に設定をする必要があります。
設定内容は ↓ こんな感じ。

・タイムスタンプを入力するセル範囲 = プルダウンでの入力とする範囲
 を決めておく(今回は A1:A20 とする)
・プルダウンのリストに使う セル を決めて =NOW() を入れておく
 (今回は D1セル とする)

もう1点、NOW関数に再計算をさせ、よりリアルな日時に近づける為に、メニューの ファイル > 設定 から、再計算を 「変更時と毎分」としておきましょう。残念ながら、Googleスプレッドシートの再計算は 、秒単位での更新は出来ないようです。

これで実際に動かしてみましょう。

現在時刻がわかりやすいように、GASとjavascriptを使って サイドバーに10ミリ秒単位の時計を表示させています。(こっちの作り方を紹介した方が需要ありそうw)

操作としては以下のように 3アクションなので、ショートカットが2アクションだったのに比べると 一手増えます

1. エンター(またはスペース)で プルダウンを表示
2. ↓キーで リスト内の 現在の日時を選択
3. エンターで決定(セル選択が一つ下にズレる)

でも、こっちは片手で出来るのと、マウスでも出来る点、そしてスマホ等のアプリ版でも使えるのが利点ですね。

プルダウンリストで現在日時(タイムスタンプ)入力の注意点

気になるのは、入力された 日時が リスト以外の値(入力規制違反)として赤いチェックがついちゃう点でしょうか。

最悪これは目をつむるとしても、それ以上に看過できないの問題が 時刻のズレです。

NOW関数で出力された D1セルの日時は 1分毎、もしくはシート内で動きがあった時に更新されます。今回でいえば、プルダウンで日時をセットした時に更新されます。

だから、皮肉なことに プルダウンで日時をセットすると、セットした日時は数秒~数十秒前の 時刻で、リアルなセットした瞬間の時刻は、D1セルに出力されることになります。(で、1分以内なら これを次のプルダウンで使うというループ)

この1分未満のズレを許容できるかどうか? が、使える・使えないのポイントでしょう。

スマホ(アプリ版)は 毎分更新が動かない

そして、スマホ(アプリ版)でも使えるとは書きましたが、アプリ版は設定した毎分更新が動きません。スプレッドシートを開きなおすか、シート内でセルへのなんらかの入力(もしくはプルダウン操作)などの動きがあれば、D1セルの時刻が更新されますが、シートを開いたまま何も操作をしない状態が長く続くと、リアルな時間と大きなズレが発生します。この点も注意です。

※アプリ版は Pull-to-Refresh(下にぐいっと引っ張って更新)が出来ず、開いた状態で更新をかけることが出来なそうです。


一応プルダウンで日時をセットする毎に D1セルは更新されるので、重複した日時が書き込まれることはないです。そこまで厳密じゃない利用ならアリでしょう。

NOW関数を直接プルダウンに入れると固定化されない

じゃあ、セルに 一回出力させずにプルダウンリストを 直接指定で =NOW() を使えばいいんでない?

そうすればリアルタイムいけんじゃない?

って思うかもしれません。

実際、こんな感じで設定は出来ます。

ただ、これを使うと

普通にNOW関数を入れたときと同じように、シートが更新されるたびにすべてのセルの 日時が更新されてしまいます。

全部が同じ時刻に揃っちゃいました。

というわけで、日時を固定化させるためには、NOW関数を出力したセルをリストにしたプルダウンを使うしかないのです。



以上、本編で紹介するには少し微妙な ネタ2つを番外編として紹介しました。

スマホ対応含め簡単に日時(タイムスタンプ)を入れたい場合は、設定の手間と作業用列が必要ですが、 本編の3で紹介した シート関数(反復計算)を使ったタイムスタンプチェックボックスで 動かすのが良さそうな気がします。

使えるか、使えないかは あなた次第!

今回で本当に一旦タイムスタンプ関連は終了にして、次回は関数カレンダーを書きます。



■次のシリーズの記事


この記事が気に入ったらサポートをしてみませんか?