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

スポンサーリンク

「Excelで時刻データの”分”の部分だけ取り出せないかな?」と思ったことはありませんか。

たとえば勤怠データを30分単位で丸めたいとき、セルの時刻から「分」だけ抜き出す必要があります。そんなときに使えるのがExcelのMINUTE関数です。手作業で1件ずつ確認するのは現実的ではありませんよね。

この記事では、MINUTE関数の基本的な使い方から解説します。30分単位の丸め処理や経過時間の表示など、実務活用パターンまでまとめました。

この記事は次のような人におすすめ

– MINUTE関数の構文や使い方を知りたい
– 時刻データを分単位で加工・集計したい
– HOUR・MINUTE・SECONDの違いを整理したい

MINUTE関数とは?できることを1分で理解

MINUTE関数の読み方・戻り値の範囲(0〜59)

MINUTE関数は、時刻データから「分」の部分を整数で取り出す関数です。読み方は「ミニット関数」。英語の「minute(分)」に由来します。

戻り値は0〜59の整数です。ちょうど0分なら0、59分なら59が返ります。60以上の値は返りません。

たとえば「14:30」というセルにMINUTE関数を使うと、結果は30です。時や秒の部分は無視して「分」だけを返してくれます。

対応バージョンはExcel 2007以降すべて(Microsoft 365含む)です。

時刻シリアル値のしくみ

Excelでは、時刻を0〜1の小数(シリアル値)で管理しています。1日を1.0として、時刻を小数で表す仕組みです。

シリアル値時刻
0.00:00(深夜0時)
0.512:00(正午)
0.7812518:45(午後6時45分)

セルに「18:45」と表示されていても、内部では0.78125という小数で保持されています。MINUTE関数はこの小数から「分」の部分だけを整数で取り出します。

日付と時刻が混在するセル(例: 2023/1/1 12:30)でも大丈夫です。整数部分が日付、小数部分が時刻を表します。MINUTE関数は小数部分だけを見るので、日付には影響されません。

MINUTE関数の構文と引数

MINUTE関数の構文は次のとおりです。

=MINUTE(シリアル値)

引数は1つだけのシンプルな関数です。

引数必須/省略可説明
シリアル値必須「分」を取り出す対象の時刻データ

引数「シリアル値」に指定できるもの一覧

引数にはいくつかの形式が指定できます。次の表で確認してみてください。

指定方法記述例結果
セル参照=MINUTE(A1) ※A1に「14:30」30
時刻文字列=MINUTE(“6:45 PM”)45
小数(シリアル値)=MINUTE(0.78125)45
他の関数の戻り値=MINUTE(NOW())現在の「分」
日付+時刻=MINUTE(“7/18/2011 7:45”)45
日付のみ=MINUTE(“4/21/2012”)0

日付のみを渡した場合、午前0時として扱われるため0が返ります。意図しない結果になりやすいので注意してください。

Excel MINUTE関数の基本的な使い方3パターン

セル参照で時刻から「分」を取り出す

もっとも基本的な使い方です。時刻が入ったセルを引数に指定します。

=MINUTE(A2)

A2に「14:30:00」と入っていれば、結果は30です。セルの表示形式が「2:30 PM」のような12時間表示でも、同じ結果を返します。表示形式に左右されないのがポイントです。

時刻文字列を直接指定する

セル参照を使わず、時刻文字列を直接書くこともできます。ダブルクォーテーションで囲むのがポイントです。

=MINUTE("3:45:30 PM")

結果は45です。AM/PM表記でも24時間表記でも「分」の部分は同じです。次の数式も同じ45を返します。

=MINUTE("15:45:30")

NOW関数と組み合わせて現在の「分」を取得する

NOW関数(現在の日時を返す関数)と組み合わせると、現在時刻の「分」をリアルタイムに取得できます。

=MINUTE(NOW())

たとえば現在が午後2時15分なら、結果は15です。ファイルを開き直すたびに値が更新されます。「今何分?」をセルに表示したいときに使えますよ。

MINUTE関数の実務活用パターン3選

30分単位で時刻を丸める(勤怠の切り上げ・切り捨て)

勤怠管理では「30分単位で丸める」ルールがよくあります。MINUTE関数とIF関数(条件分岐の関数)を組み合わせて対応できます。

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

=IF(MINUTE(A2)>=30, HOUR(A2)+1, HOUR(A2)) & ":00"
出勤時刻(A列)結果(B列)
8:158:00
8:459:00
9:109:00

30分以上なら次の時に切り上げ、30分未満なら切り捨てる仕組みです。MINUTE関数で「分」を取り出して、IF関数で分岐しているだけですね。

ちょっとむずかしく見えますが、やっていることはシンプルですよね。

もっと細かい丸め処理にはFLOOR関数やCEILING関数も便利です。たとえば15分単位の切り捨てなら次のように書けます。

=FLOOR(A2,"0:15")

経過時間を「○時間○分」形式で表示する

作業ログの経過時間を「2時間30分」のように表示したい場面です。HOUR関数(時刻から「時」を取り出す関数)とMINUTE関数を組み合わせます。

A列に開始時刻、B列に終了時刻が入っているとします。

=HOUR(B2-A2) & "時間" & MINUTE(B2-A2) & "分"
開始(A列)終了(B列)結果(C列)
9:0011:302時間30分
13:1514:501時間35分
10:0010:450時間45分

B2-A2で経過時間のシリアル値を求めます。そこからHOUR関数で「時」、MINUTE関数で「分」を取り出して文字列で結合しています。

ただし24時間を超える場合はこの方法だと正しく表示されません。その場合はTEXT関数(値を指定した書式の文字列に変換する関数)で [h] 書式を使ってください。

=TEXT(B2-A2,"[h]時間mm分")

15分スロットに分類して集計する

コールセンターの入電分析など「15分刻み」で件数を見たい場面です。MINUTE関数とIF関数を組み合わせます。

A列に時刻が入っているとして、B列でスロットを分類します。

=IF(MINUTE(A2)<15,"00-14",IF(MINUTE(A2)<30,"15-29",IF(MINUTE(A2)<45,"30-44","45-59")))
時刻(A列)スロット(B列)
10:0500-14
10:2215-29
10:3830-44
10:5245-59

MINUTE関数で「分」を取り出して、IFのネストで4つの区間に振り分けています。B列にスロットが入ったら、COUNTIF関数で区間別の件数を集計できますよ。

MINUTE関数のエラーと対処法

#VALUE!エラー:文字列が時刻として認識されない

MINUTE関数で#VALUE!エラーが出る一番多い原因は、時刻として認識できない値を渡しているケースです。

=MINUTE("abc")    → #VALUE!エラー
=MINUTE(-0.5)     → #VALUE!エラー

Excelが時刻として解釈できない文字列や負の数値を渡すとエラーになります。

見た目は時刻に見えるのにエラーが出る場合もあります。セルの値が「文字列」になっている可能性が高いです。CSVの取り込みやコピー&ペーストでよく起きる現象ですよね。

対処法は次のとおりです。

  • セルの表示形式を「標準」や「時刻」に変更する
  • TIMEVALUE関数(文字列を時刻シリアル値に変換する関数)を使う
=MINUTE(TIMEVALUE(A2))

TIMEVALUE関数が文字列をシリアル値に変換してくれます。これでMINUTE関数が正しく「分」を取り出せるようになります。

TIME関数で60分以上を指定した場合の注意

TIME関数(時・分・秒からシリアル値を作る関数)で60以上の「分」を指定すると、自動で繰り上げが起きます。

=TIME(0,90,0)             → 1:30:00
=MINUTE(TIME(0,90,0))     → 30(90ではない)

TIME(0,90,0)は90分を1時間30分に繰り上げます。その結果、MINUTE関数は30を返します。90という値は返りません。

同様に、TIME(0,750,0)は12:30:00になります。MINUTE関数は30を返します。

MINUTE関数の戻り値は必ず0〜59の範囲です。60分以上の合計値が必要な場面では、シリアル値を直接計算してください。

=INT((B2-A2)*1440)

この数式は経過時間を「分」の合計値で返します。1440は1日の分数(24×60)です。

HOUR・MINUTE・SECOND・TIME・TIMEVALUE 使い分け早見表

時刻を扱う関数はいくつかあります。役割の違いを表で整理します。

関数役割引数戻り値
HOUR時刻から「時」を取り出すシリアル値0〜23
MINUTE時刻から「分」を取り出すシリアル値0〜59
SECOND時刻から「秒」を取り出すシリアル値0〜59
TIME時・分・秒からシリアル値を作る時, 分, 秒シリアル値
TIMEVALUE文字列をシリアル値に変換する文字列シリアル値

HOUR・MINUTE・SECONDは「分解する関数」です。TIMEは「組み立てる関数」と覚えるとわかりやすいですよ。MINUTE関数でバラした値をTIME関数で再構成する使い方もできます。

なお、24時間を超える累計時間(例: 作業合計が30時間)では、MINUTE関数で正しい「分の合計」は取れません。MINUTE関数はあくまで時刻の「分」の部分(0〜59)を返すだけです。累計分数が必要な場面では、先ほど紹介した =INT(値*1440) の計算を使ってみてください。

Google スプレッドシートでMINUTE関数を使いたい方は、スプレッドシートのMINUTE関数の記事もあわせてチェックしてみてください。

まとめ

MINUTE関数は、時刻データから「分」を整数で取り出すシンプルな関数です。

  • 構文は =MINUTE(シリアル値) で引数は1つだけ
  • 戻り値は0〜59の整数
  • IF関数と組み合わせれば30分単位の丸め処理ができる
  • HOUR関数と組み合わせれば「○時間○分」形式の表示ができる
  • 60分超の合計値が必要な場合はシリアル値×1440で計算する

まずは =MINUTE(A2) で時刻から「分」を取り出すところから試してみてください。勤怠の丸め処理や経過時間の表示など、分単位のデータ加工がぐっとラクになります。

関数一覧

biz-tacticsではExcel関数の一覧を3パターンご用意しています。用途に合わせてお使いください。

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

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

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

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

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