「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.0 | 0:00(深夜0時) |
| 0.5 | 12:00(正午) |
| 0.78125 | 18: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:15 | 8:00 |
| 8:45 | 9:00 |
| 9:10 | 9: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:00 | 11:30 | 2時間30分 |
| 13:15 | 14:50 | 1時間35分 |
| 10:00 | 10:45 | 0時間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:05 | 00-14 |
| 10:22 | 15-29 |
| 10:38 | 30-44 |
| 10:52 | 45-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パターンご用意しています。用途に合わせてお使いください。
各一覧の文字色が青くなっている関数はクリックすると解説ページを開くことができます。
エラー値についてのまとめ記事
関数でエラーが発生した際に表示される、エラーの種類を以下の記事でまとめています。
