「タイムスタンプの秒まで見たいのに、表示が時分までしかない……」
フォームの回答データやログを扱っていると、時刻から「秒」だけ取り出したい場面がありますよね。セルには「14:32:45」と入っているのに、欲しいのは「45」だけ。手作業で抜き出すのは現実的ではありません。
そんなときに使うのが、スプレッドシートのSECOND関数です。時刻データから「秒」の部分だけをサッと取り出せます。この記事では基本の書き方から、秒の切り捨て・経過秒数の計算・TIME関数との組み合わせまで解説します。
SECOND関数とは?スプレッドシートで時刻から「秒」を取り出す関数
SECOND関数は、時刻データから「秒」の部分を整数で返す関数です。読み方は「セカンド」で、英語の「Second(秒)」がそのまま名前になっています。
たとえばセルに「14:32:45」と入っていれば、SECOND関数は「45」を返します。返ってくるのは0から59までの整数です。ちょうど0秒なら0、59秒なら59ですね。
できることはシンプルですが、使い道は意外と広いです。
- タイムスタンプから秒単位のデータを取り出して分析する
- 秒を切り捨てて「分」単位に丸める
- 2つの時刻の差を秒単位で計算する
SECOND関数は、TIME関数の逆操作にあたります。TIME関数は時・分・秒から時刻データを作る関数です。TIME関数が「組み立て」なら、SECOND関数は「分解」ですね。HOUR関数(時を取り出す関数)やMINUTE関数(分を取り出す関数)と兄弟のような関数です。
SECOND関数の基本の書き方
基本構文
=SECOND(時刻)
引数は1つだけ。HOUR関数やMINUTE関数と同じく、とてもシンプルです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 時刻 | 必須 | 「秒」を取り出したい時刻データ。セル参照・TIME関数・文字列形式(”14:32:45″)などが使える |
具体例で確認
実際に動きを見てみましょう。
| セルの値 | 数式 | 結果 |
|---|---|---|
| 14:32:45 | =SECOND(A2) | 45 |
| 20:49:59 | =SECOND(A3) | 59 |
| 0:15:00 | =SECOND(A4) | 0 |
| — | =SECOND(TIME(11,40,59)) | 59 |
| — | =SECOND("20:49:30") | 30 |
TIME(11,40,59)は11時40分59秒を意味します。そこからSECONDで「秒」を取り出すと59ですね。文字列の”20:49:30″を直接渡しても、ちゃんと30が返ります。
TIP
セル参照を使うのが一番確実です。「=SECOND(A2)」のように、時刻が入ったセルを指定するのが基本の使い方ですよ。
実務で使えるSECOND関数の活用例
ここからは実務で役立つ組み合わせパターンを紹介します。
秒を切り捨てて「分」単位に丸める
タイムスタンプに秒まで記録されているけれど、分単位で十分という場面は多いです。TIME関数と組み合わせれば、秒だけをゼロにできます。
=TIME(HOUR(A2),MINUTE(A2),0)
この数式のしくみはこうです。HOUR(A2)で「時」、MINUTE(A2)で「分」をそのまま残し、秒を0に固定しています。
いくつかの時刻で結果を確認しましょう。
| 元の時刻(A列) | 数式の結果 | 処理内容 |
|---|---|---|
| 14:32:45 | 14:32:00 | 45秒を切り捨て |
| 9:00:00 | 9:00:00 | もともと0秒→そのまま |
| 18:15:59 | 18:15:00 | 59秒を切り捨て |
フォームの回答時刻やシステムログなど、秒まで記録されるデータを分単位に揃えたいときに便利です。
2つの時刻の差を秒単位で計算する
「開始から終了まで何秒かかった?」を計算するパターンです。時刻の引き算だけだと時刻形式のまま返ってくるので、秒数に変換します。
=(B2-A2)*86400
時刻の差に86400を掛けると、秒数に変換できます。86400は1日の秒数(24 x 60 x 60)です。
| 開始時刻(A列) | 終了時刻(B列) | 数式の結果 | 意味 |
|---|---|---|---|
| 14:32:00 | 14:32:45 | 45 | 45秒 |
| 9:00:00 | 9:01:30 | 90 | 1分30秒 |
| 10:00:00 | 10:05:00 | 300 | 5分 |
TIP
SECOND関数を使わなくても差の秒数は計算できますが、「秒の成分だけ」を知りたい場合はSECOND関数の出番です。たとえば
=SECOND(B2-A2)とすれば、差の「秒」成分だけ(0〜59)が返ります。
TIME関数と組み合わせて秒だけ変更する
TIME関数を使えば、秒だけを別の値に差し替えられます。
秒を00秒にリセットする:
=TIME(HOUR(A2),MINUTE(A2),0)
14:32:45に使うと14:32:00になります。秒の切り捨てと同じですね。
秒を30秒に固定する:
=TIME(HOUR(A2),MINUTE(A2),30)
何時何分であっても「30秒ちょうど」に揃えます。14:32:45なら14:32:30、9:07:12なら9:07:30になります。
秒だけ残して時・分をゼロにする:
=TIME(0,0,SECOND(A2))
14:32:45に使うと0:00:45になります。秒の成分だけを独立して扱いたい場面で使えますよ。
HOUR・MINUTE・SECOND関数の違いと使い分け
SECOND関数には兄弟のような関数が2つあります。HOUR関数とMINUTE関数です。
| 関数 | 取り出す成分 | 戻り値の範囲 |
|---|---|---|
| HOUR | 時 | 0〜23 |
| MINUTE | 分 | 0〜59 |
| SECOND | 秒 | 0〜59 |
3つとも書き方は同じです。引数に時刻を1つ渡すだけ。
たとえば「14:32:45」に対して、それぞれの結果はこうなります。
| 数式 | 結果 |
|---|---|
=HOUR("14:32:45") | 14 |
=MINUTE("14:32:45") | 32 |
=SECOND("14:32:45") | 45 |
これら3つの関数は、TIME関数の逆操作という位置づけです。TIME関数が時・分・秒を組み合わせて時刻を「作る」関数です。一方、HOUR・MINUTE・SECONDは時刻を「分解する」役割ですね。
3つを組み合わせれば、時刻の完全な分解と再構成ができます。
=TIME(HOUR(A2),MINUTE(A2),SECOND(A2))
この数式はA2の時刻をそのまま返します。実用的には、一部の成分だけ変更したいときに使うテクニックです。
よくあるエラーと対処法
SECOND関数で出るエラーは、ほぼ #VALUE! です。原因と対処法をまとめました。
時刻として認識できない文字列を渡している
=SECOND("午後3時")
この書き方では #VALUE! になります。SECOND関数が受け付けるのは「14:32:45」のような時刻形式や、TIME関数の結果です。
対処法: セルに正しい時刻形式で入力するか、TIME関数で時刻を作って渡してください。
ダブルクォーテーションなしで直接入力している
=SECOND(14:32:45)
ダブルクォーテーションで囲まずに入力すると #VALUE! になります。スプレッドシートが「14:32:45」を時刻ではなく計算式として解釈してしまうためです。
対処法: =SECOND("14:32:45") のようにダブルクォーテーションで囲みましょう。
数値をそのまま渡している
=SECOND(45)
この場合、エラーにはなりませんが結果は「45秒」ではなく「0」です。スプレッドシートの内部では45がシリアル値として扱われるためです。時刻として渡すなら =SECOND(TIME(0,0,45)) としてください。
NOTE
NOW関数のように時刻を返す関数と組み合わせれば、現在時刻の「秒」をリアルタイムで取得できます。
=SECOND(NOW())で今が何秒か確認できますよ。
まとめ
SECOND関数は、時刻データから「秒」の部分を取り出すシンプルな関数です。
この記事で紹介した内容をおさらいしましょう。
- 基本:
=SECOND(時刻)で0〜59の整数が返る - 秒の切り捨て: TIME関数と組み合わせて秒をゼロにできる
- 経過秒数の計算:
=(B2-A2)*86400で2つの時刻の差を秒数に変換できる - TIME関数との組み合わせ: 時刻の秒だけを変更・リセットできる
- HOUR・MINUTEとの違い: 3関数とも書き方は同じ。取り出す成分だけが違う
タイムスタンプの処理や時刻データの加工で活躍する関数です。まずは =SECOND(A2) から試してみてください。
