ExcelのSECOND関数の使い方|時刻から「秒」を取り出す基本と実務活用

スポンサーリンク

「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.00:00:00(深夜0時)
0.512:00:00(正午)
0.7518: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:4514:30:00
9:15:089:15:00
23:59:5923:59:00

HOUR関数で「時」、MINUTE関数で「分」を取り出して、秒を0にしてTIME関数で組み立て直しています。ちょっとむずかしく見えますが、やっていることはシンプルですよね。

SECOND関数自体は数式に出てきませんが、「秒の部分を0にする」という発想がSECOND関数の理解につながります。

IF関数で秒の端数を判定してアラートを出す

「秒の端数がある時刻を見つけたい」という場面です。IF関数(条件分岐の関数)とSECOND関数を組み合わせます。

A列に時刻が入っているとして、B列に次の数式を入力します。

=IF(SECOND(A2)<>0,"端数あり","OK")
時刻(A列)結果(B列)
14:30:00OK
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:0011:30:152時間30分15秒
13:15:0014:50:301時間35分30秒
10:00:0010:00:450時間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パターンご用意しています。用途に合わせてお使いください。

各一覧の文字色が青くなっている関数はクリックすると解説ページを開くことができます。

エラー値についてのまとめ記事

関数でエラーが発生した際に表示される、エラーの種類を以下の記事でまとめています。

【Excel】セルに表示されるエラーの種類と原因、対処方法を解説

タイトルとURLをコピーしました