「勤怠データ、15分単位で丸めたいんだけど……」
スプレッドシートで時刻データを扱っていると、「分」だけ取り出したい場面がありますよね。セルには「14:32:00」と入っているのに、欲しいのは「32」だけ。手作業で抜き出すのは現実的ではありません。
そんなときに使うのが、スプレッドシートのMINUTE関数です。時刻データから「分」の部分だけをサッと取り出せます。この記事では基本の書き方から、15分単位の丸め・分→時間換算・TIME関数との組み合わせまで解説します。
MINUTE関数とは?スプレッドシートで時刻から「分」を取り出す関数
MINUTE関数は、時刻データから「分」の部分を整数で返す関数です。読み方は「ミニット」で、英語の「Minute(分)」がそのまま名前になっています。
たとえばセルに「14:32:00」と入っていれば、MINUTE関数は「32」を返します。返ってくるのは0から59までの整数です。ちょうど0分なら0、59分なら59ですね。
できることはシンプルですが、使い道は意外と広いです。
- 勤怠データを15分単位や30分単位に丸める下準備
- 打刻時刻の分だけを取り出して集計する
- 分を時間に換算して工数計算に使う
MINUTE関数は、TIME関数の逆操作にあたります。TIME関数は時・分・秒から時刻データを作る関数です。TIME関数が「組み立て」なら、MINUTE関数は「分解」ですね。HOUR関数(時を取り出す関数)と兄弟のような関数です。
MINUTE関数の基本の書き方
基本構文
=MINUTE(時刻)
引数は1つだけ。HOUR関数と同じく、とてもシンプルです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 時刻 | 必須 | 「分」を取り出したい時刻データ。セル参照・TIME関数・文字列形式(”14:32:00″)などが使える |
具体例で確認
実際に動きを見てみましょう。
| セルの値 | 数式 | 結果 |
|---|---|---|
| 14:32:00 | =MINUTE(A2) | 32 |
| 20:49:59 | =MINUTE(A3) | 49 |
| 0:05:00 | =MINUTE(A4) | 5 |
| — | =MINUTE(TIME(11,40,59)) | 40 |
| — | =MINUTE("20:49:59") | 49 |
TIME(11,40,59)は11時40分59秒を意味します。そこからMINUTEで「分」を取り出すと40ですね。文字列の”20:49:59″を直接渡しても、ちゃんと49が返ります。
TIP
セル参照を使うのが一番確実です。「=MINUTE(A2)」のように、時刻が入ったセルを指定するのが基本の使い方ですよ。
実務で使えるMINUTE関数の活用例
ここからは実務で役立つ組み合わせパターンを紹介します。
15分単位・30分単位に丸める
勤怠管理でよくある「15分単位で切り捨て」の処理です。まずMINUTE関数で分を取り出し、FLOOR関数(指定した基準値の倍数に切り捨てる関数)で丸めます。
たとえば出勤時刻がA列に入っているとします。
15分単位で切り捨てる数式:
=TIME(HOUR(A2),FLOOR(MINUTE(A2),15),0)
この数式のしくみはこうです。HOUR(A2)で「時」、FLOOR(MINUTE(A2),15)で「分を15の倍数に切り捨て」、秒は0にしています。
いくつかの時刻で結果を確認しましょう。
| 出勤時刻(A列) | 数式の結果 | 処理内容 |
|---|---|---|
| 9:07:00 | 9:00:00 | 7分→0分に切り捨て |
| 9:15:00 | 9:15:00 | ちょうど15分→そのまま |
| 9:23:00 | 9:15:00 | 23分→15分に切り捨て |
| 9:44:00 | 9:30:00 | 44分→30分に切り捨て |
30分単位で切り上げる場合 は、FLOORをCEILINGに変えるだけです。CEILING関数は指定した基準値の倍数に切り上げる関数です。
=TIME(HOUR(A2),CEILING(MINUTE(A2),30),0)
9:07なら9:30に、9:31なら10:00に切り上がります。
TIP
切り捨て = FLOOR、切り上げ = CEILING と覚えておくと便利ですよ。
分を時間に換算する(MINUTE/60)
「この作業は何時間かかった?」を計算するとき、分を時間に換算する場面があります。
=MINUTE(A2)/60
たとえば作業時間が「0:45:00」の場合、MINUTE関数で45を取り出し、60で割ると0.75時間です。
| 作業時間(A列) | MINUTE(A2) | MINUTE(A2)/60 | 意味 |
|---|---|---|---|
| 0:30:00 | 30 | 0.5 | 0.5時間 |
| 0:45:00 | 45 | 0.75 | 0.75時間 |
| 0:20:00 | 20 | 0.333… | 約0.33時間 |
時間単価と掛け合わせれば、工数コストの計算にも使えますね。
WARNING
この方法は「1時間未満」の作業時間に適しています。1時間以上の場合はHOUR関数と組み合わせて
=HOUR(A2)+MINUTE(A2)/60とすると正確です。
TIME関数と組み合わせて分だけ変更する
TIME関数を使えば、分だけを別の値に差し替えられます。
分を00分にリセットする:
=TIME(HOUR(A2),0,SECOND(A2))
14:32:45に使うと14:00:45になります。HOUR関数で「時」、SECOND関数(秒を取り出す関数)で「秒」を残し、分だけ0にしています。
分を30分に固定する:
=TIME(HOUR(A2),30,0)
何時であっても「30分ちょうど」に揃えたいときに使えます。14:07:00でも20:55:00でも、結果はそれぞれ14:30:00、20:30:00です。
予約システムで「毎時30分開始」の枠を作るときなどに便利ですよ。
HOUR・MINUTE・SECOND関数の違いと使い分け
MINUTE関数には兄弟のような関数が2つあります。HOUR関数とSECOND関数です。
| 関数 | 取り出す成分 | 戻り値の範囲 |
|---|---|---|
| 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は時刻を「分解する」役割ですね。
よくあるエラーと対処法
MINUTE関数で出るエラーは、ほぼ #VALUE! です。原因と対処法をまとめました。
時刻として認識できない文字列を渡している
=MINUTE("午後3時")
この書き方では #VALUE! になります。MINUTE関数が受け付けるのは「14:32:00」のような時刻形式や、TIME関数の結果です。
対処法: セルに正しい時刻形式で入力するか、TIME関数で時刻を作って渡してください。
ダブルクォーテーションなしで直接入力している
=MINUTE(14:32:00)
ダブルクォーテーションで囲まずに入力すると #VALUE! になります。スプレッドシートが「14:32:00」を時刻ではなく計算式として解釈してしまうためです。
対処法: =MINUTE("14:32:00") のようにダブルクォーテーションで囲みましょう。
数値をそのまま渡している
=MINUTE(32)
この場合、エラーにはなりませんが結果は「32分」ではなく「0」です。スプレッドシートの内部では32がシリアル値として扱われるためです。時刻として渡すなら =MINUTE(TIME(0,32,0)) としてください。
NOTE
NOW関数のように時刻を返す関数と組み合わせれば、現在時刻の「分」をリアルタイムで取得できます。
=MINUTE(NOW())で今が何分かすぐ確認できますよ。
まとめ
MINUTE関数は、時刻データから「分」の部分を取り出すシンプルな関数です。
この記事で紹介した内容をおさらいしましょう。
- 基本:
=MINUTE(時刻)で0〜59の整数が返る - 15分・30分単位の丸め: FLOOR/CEILING関数と組み合わせて勤怠データを丸められる
- 分→時間換算:
=MINUTE(A2)/60で小数の時間に変換できる - TIME関数との組み合わせ: 時刻の分だけを変更・リセットできる
- HOUR・SECONDとの違い: 3関数とも書き方は同じ。取り出す成分だけが違う
勤怠管理や工数計算など、時刻を扱う業務で活躍する関数です。まずは =MINUTE(A2) から試してみてください。
