「Excelで時刻データの”秒”の部分だけ取り出せないかな?」と思ったことはありませんか。
たとえばログデータの秒単位のばらつきをチェックしたいとき、セルの時刻から「秒」だけ抜き出す必要があります。そんなときに使えるのがExcelのSECOND関数です。手作業で1件ずつ確認するのは現実的ではありませんよね。
この記事では、SECOND関数の基本的な使い方から解説します。秒を0にリセットする方法や秒の端数判定など、実務活用パターンまでまとめました。
この記事は次のような人におすすめ
– SECOND関数の構文や使い方を知りたい
– 時刻データの秒を加工・判定したい
– HOUR・MINUTE・SECONDの違いを整理したい
SECOND関数とは?できることを1分で理解
SECOND関数の読み方・戻り値の範囲(0〜59)
SECOND関数は、時刻データから「秒」の部分を整数で取り出す関数です。読み方は「セコンド関数」。英語の「second(秒)」に由来します。
戻り値は0〜59の整数です。ちょうど0秒なら0、59秒なら59が返ります。60以上の値は返りません。
たとえば「14:30:15」というセルにSECOND関数を使うと、結果は15です。時や分の部分は無視して「秒」だけを返してくれます。
対応バージョンはExcel 2016以降すべて(Microsoft 365含む)です。Excel Web版でも使えます。
時刻シリアル値のしくみ
Excelでは、時刻を0〜1の小数(シリアル値)で管理しています。1日を1.0として、時刻を小数で表す仕組みです。
| シリアル値 | 時刻 |
|---|---|
| 0.0 | 0:00:00(深夜0時) |
| 0.5 | 12:00:00(正午) |
| 0.75 | 18:00:00(午後6時) |
セルに「14:30:15」と表示されていても、内部では小数で保持されています。SECOND関数はこの小数から「秒」の部分だけを整数で取り出します。
日付と時刻が混在するセル(例: 2023/1/1 12:00:30)でも大丈夫です。整数部分が日付、小数部分が時刻を表します。SECOND関数は小数部分だけを見るので、日付には影響されません。
SECOND関数の構文と引数
SECOND関数の構文は次のとおりです。
=SECOND(シリアル値)
引数は1つだけのシンプルな関数です。
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| シリアル値 | 必須 | 「秒」を取り出す対象の時刻データ |
引数「シリアル値」に指定できるもの一覧
引数にはいくつかの形式が指定できます。次の表で確認してみてください。
| 指定方法 | 記述例 | 結果 |
|---|---|---|
| セル参照 | =SECOND(A1) ※A1に「14:30:15」 | 15 |
| 時刻文字列 | =SECOND(“6:45:30 PM”) | 30 |
| 小数(シリアル値) | =SECOND(0.75) | 0 |
| 他の関数の戻り値 | =SECOND(NOW()) | 現在の「秒」 |
| 日付+時刻 | =SECOND(“7/18/2011 7:45:30”) | 30 |
| 秒なし時刻 | =SECOND(“4:48 PM”) | 0 |
秒を含まない時刻(”4:48 PM”など)を渡した場合は0が返ります。秒の情報がないため当然の結果ですが、意図しない場合は注意してください。
Excel SECOND関数の基本的な使い方3パターン
セル参照で時刻から「秒」を取り出す
もっとも基本的な使い方です。時刻が入ったセルを引数に指定します。
=SECOND(A2)
A2に「14:30:15」と入っていれば、結果は15です。セルの表示形式が「2:30 PM」のような12時間表示でも、同じ結果を返します。表示形式に左右されないのがポイントです。
時刻文字列を直接指定する
セル参照を使わず、時刻文字列を直接書くこともできます。ダブルクォーテーションで囲むのがポイントです。
=SECOND("3:45:30 PM")
結果は30です。AM/PM表記でも24時間表記でも「秒」の部分は同じです。次の数式も同じ30を返します。
=SECOND("15:45:30")
NOW関数と組み合わせて現在の「秒」を取得する
NOW関数(現在の日時を返す関数)と組み合わせると、現在時刻の「秒」をリアルタイムに取得できます。
=SECOND(NOW())
たとえば現在が午後2時15分30秒なら、結果は30です。ファイルを開き直すたびに値が更新されます。「今何秒?」をセルに表示したいときに使えますよ。
SECOND関数の実務活用パターン3選
秒を0にリセットして分単位の時刻を作る(TIME関数)
ログデータの時刻を分単位に揃えたい場面です。TIME関数(時・分・秒からシリアル値を作る関数)と組み合わせます。
A列に秒付きの時刻が入っているとして、B列に次の数式を入力します。
=TIME(HOUR(A2),MINUTE(A2),0)
| 元の時刻(A列) | 結果(B列) |
|---|---|
| 14:30:45 | 14:30:00 |
| 9:15:08 | 9:15:00 |
| 23:59:59 | 23:59:00 |
HOUR関数で「時」、MINUTE関数で「分」を取り出して、秒を0にしてTIME関数で組み立て直しています。ちょっとむずかしく見えますが、やっていることはシンプルですよね。
SECOND関数自体は数式に出てきませんが、「秒の部分を0にする」という発想がSECOND関数の理解につながります。
IF関数で秒の端数を判定してアラートを出す
「秒の端数がある時刻を見つけたい」という場面です。IF関数(条件分岐の関数)とSECOND関数を組み合わせます。
A列に時刻が入っているとして、B列に次の数式を入力します。
=IF(SECOND(A2)<>0,"端数あり","OK")
| 時刻(A列) | 結果(B列) |
|---|---|
| 14:30:00 | OK |
| 14:30:15 | 端数あり |
| 9:00:01 | 端数あり |
SECOND関数で「秒」を取り出して、0でなければ「端数あり」と表示します。勤怠データや入力ログで、秒の端数が混入していないかチェックするときに便利ですよ。
HOUR+MINUTE+SECONDで○時間○分○秒の表記に整形する
経過時間を「2時間30分15秒」のように日本語で表示したい場面です。HOUR関数・MINUTE関数・SECOND関数を組み合わせます。
A列に開始時刻、B列に終了時刻が入っているとします。
=HOUR(B2-A2) & "時間" & MINUTE(B2-A2) & "分" & SECOND(B2-A2) & "秒"
| 開始(A列) | 終了(B列) | 結果(C列) |
|---|---|---|
| 9:00:00 | 11:30:15 | 2時間30分15秒 |
| 13:15:00 | 14:50:30 | 1時間35分30秒 |
| 10:00:00 | 10:00:45 | 0時間0分45秒 |
B2-A2で経過時間のシリアル値を求めます。そこからHOUR関数で「時」、MINUTE関数で「分」、SECOND関数で「秒」を取り出して文字列で結合しています。
ただし24時間を超える場合はこの方法だと正しく表示されません。その場合はTEXT関数(値を指定した書式の文字列に変換する関数)で [h] 書式を使ってください。
=TEXT(B2-A2,"[h]時間mm分ss秒")
SECOND関数のエラーと対処法
#VALUE!エラーが出るケースと修正方法
SECOND関数で#VALUE!エラーが出る一番多い原因は、時刻として認識できない値を渡しているケースです。
=SECOND("abc") → #VALUE!エラー
=SECOND(-0.5) → #VALUE!エラー
Excelが時刻として解釈できない文字列や負の数値を渡すとエラーになります。
見た目は時刻に見えるのにエラーが出る場合もあります。セルの値が「文字列」になっている可能性が高いです。CSVの取り込みやコピー&ペーストでよく起きる現象ですよね。
対処法は次のとおりです。
- セルの表示形式を「標準」や「時刻」に変更する
- TIMEVALUE関数(文字列を時刻シリアル値に変換する関数)を使う
=SECOND(TIMEVALUE(A2))
TIMEVALUE関数が文字列をシリアル値に変換してくれます。これでSECOND関数が正しく「秒」を取り出せるようになります。
常に0が返るときの原因と対処
SECOND関数の結果がすべて0になる場合、よくある原因は2つです。
原因1: 時刻に秒の情報が含まれていない
「14:30」のように時と分だけの時刻データでは、秒は0として扱われます。元データに秒が記録されていなければ、SECOND関数は0しか返しません。
原因2: セルの表示形式で秒が隠れている
セルに秒の情報が含まれていても、表示形式が「h:mm」だと秒が見えません。表示形式を「h:mm:ss」に変更して、実際に秒が入っているか確認してみてください。
セルを選択して数式バーに「14:30:15」のように秒まで表示されていれば、データには秒が含まれています。表示形式を「h:mm:ss」にすればセル上でも確認できますよ。
HOUR・MINUTE・SECOND・TIME・TIMEVALUE 使い分け早見表
時刻を扱う関数はいくつかあります。役割の違いを表で整理します。
| 関数 | 役割 | 引数 | 戻り値 |
|---|---|---|---|
| HOUR | 時刻から「時」を取り出す | シリアル値 | 0〜23 |
| MINUTE | 時刻から「分」を取り出す | シリアル値 | 0〜59 |
| SECOND | 時刻から「秒」を取り出す | シリアル値 | 0〜59 |
| TIME | 時・分・秒からシリアル値を作る | 時, 分, 秒 | シリアル値 |
| TIMEVALUE | 文字列をシリアル値に変換する | 文字列 | シリアル値 |
HOUR・MINUTE・SECONDは「分解する関数」です。TIMEは「組み立てる関数」と覚えるとわかりやすいですよ。SECOND関数でバラした値をTIME関数で再構成する使い方もできます。
なお、24時間を超える累計時間(例: 作業合計が30時間)では、SECOND関数で正しい「秒の合計」は取れません。SECOND関数はあくまで時刻の「秒」の部分(0〜59)を返すだけです。累計秒数が必要な場面では、シリアル値に86400を掛けて計算してください。
=INT(値*86400)
86400は1日の秒数(24×60×60)です。
まとめ
SECOND関数は、時刻データから「秒」を整数で取り出すシンプルな関数です。
- 構文は
=SECOND(シリアル値)で引数は1つだけ - 戻り値は0〜59の整数
- TIME関数と組み合わせれば秒を0にリセットできる
- IF関数と組み合わせれば秒の端数チェックができる
- HOUR・MINUTE・SECONDの3つで時刻を完全に分解できる
まずは =SECOND(A2) で時刻から「秒」を取り出すところから試してみてください。ログデータの秒単位の分析や端数チェックなど、秒を扱う作業がぐっとラクになります。
関数一覧
biz-tacticsではExcel関数の一覧を3パターンご用意しています。用途に合わせてお使いください。
各一覧の文字色が青くなっている関数はクリックすると解説ページを開くことができます。
エラー値についてのまとめ記事
関数でエラーが発生した際に表示される、エラーの種類を以下の記事でまとめています。
