スプレッドシートのちょっとしたテクニックって、どこにも載っていないし気づいたときにメモしてもいいんじゃないかと思うんだけど、いざ書くとなると忘れるし面倒だったりする。
…というのをなくすために軽くメモ。
スプレッドシートのnow()の関数は年や月も持ってくるので、「時、分、秒」を持ったタイムスタンプと比べるときに比べられなくて面倒。でも、現在の「時、分、秒」のデータを持ってくる関数は存在しない(多分)ので、作る必要がある。一番シンプルなのが、=now()-today()で年や月のデータを削除すると簡単に 現在の「時、分、秒」のデータを持ってくることができる。
ちなみに、 「時、分、秒」のタイムスタンプは表示形式を自動の数字にすると0~1の間の数字になっている。つまり、24倍するとその時間を求められる。1を24で割ったり60でかけたりすれば、時間や分にした時の「0~1」での数値も求められるんだけど、これは=time(時,分,秒)で簡単に作ることができる。
タイムスタンプは時間の差なども求めやすくて便利なんだけど、1つ問題点を上げると日付が変わると計算がおかしくなること。23:50から0:10の差は20分なんだけど、普通に上から下を引いてると-(23:40)の数値になってしまう。あとソートで昇順にしているときも0時超えたほうが数値が下がるのでおかしくなってしまう。
これの対策法として、差し引きするような範囲で0時以降は+1して1日先の表示にすれば、きれいじゃないけど間に合せで解決できる。12時間以上の差し引きするようなシステムなら、諦めて日付のデータを入れるようにしたほうがよさそう。