2014年11月15日

時間を10分単位で丸めたり、切上げ、切捨てをしてみた。(MROUND、CELING、FLOOR /Excel/関数

時間の集計計算って簡単なようだと思っても、上手くいかなかったりすることありませんか?
今回は、Excelの関数を使って時間(時刻)を設定した単位時間で丸めたり、切上げたり、切り捨てたりしてみます。
MROUND関数、CELING関数、FLOOR関数を使用します。

こんな業務日報があります。
業務を行った日、開始時刻、終了時刻とどんな業務を行ったかの内容が入力されています。
んで、開始時刻、終了時刻は1分単位で入力されてますね。。スゴッ!
あっ、ちなみにこの表は“テーブル”に設定しています。
20141115-01.JPG

まず、作業時間を求めてみましょう。
終了時刻から開始時刻を引けばその差が作業時間になりますよね。
20141115-02.JPG

んで、計算結果が小数点の数字(シリアル値)になっているので、書式を“時刻”に変更します。
20141115-03.JPG

すると、こんな感じに作業時間の集計が出来ました。1分単位で集計されてますね。
20141115-04.JPG

時間を丸める
では、これを“MROUND関数”を使って10分単位で丸めてみましょう。
ちなみに、“Round(ラウンド)”は数値を丸めるという意味で“M(Multiple)”(マルチプル)は倍数という意味で、“MROUND関数”は指定した値の倍数になるように数値を切上げ、切り下げを行う関数です。
20141115-05.JPG

「数式」「数学/三角」から「MROUND,MATH」を選択します。
(Excel2010以下では“MROUND”になります )
20141115-06.JPG

数値:作業時間が入力されているセルを指定します
倍数:ここでは10分単位で丸めるので“0:10”と入力します(ダブルクォーテーションは不要です)
20141115-07.JPG

「OK」で10分単位で丸まってるはずなんですが、、、
20141115-08.JPG

シリアル値ではわからないので、これまた書式を時刻に変更すると、このように綺麗に10分単位で丸められました。
20141115-10.JPG

時間を切上げする
では次は、10分単位で切上げをしてみます。
20141115-11.JPG

今度は“CEILING関数”を使用します。“シーリング”というのは“天井”、“上限”という意味がありますが、数値の端数処理(丸め)に関しては“天井関数”ってのがあります。
「数式」「数学/三角」から「CEILING,MATH」を選択します。
(Excel2010以下では“CEILING”になります )
20141115-12.JPG

数値:作業時間が入力されているセルを指定します
倍数:“0:10”と入力します。MROUND関数の時は、ダブルクォーテーションは不要でしたが、ここでは半角のダブルクォーテーションを入れないとエラーになります。
20141115-16.JPG

と、このように10分単位で作業時間が切上げられました。
20141115-13.JPG

時間を切下げする
では次は、10分単位で切下げをしてみます。
今度は“FLOOR関数”を使用します。“フロア”というのは“床”、“下限”という意味がありますが、これも数値の端数処理(丸め)に関しては“床関数”ってのがあります。
「数式」「数学/三角」から「FLOOR,MATH」を選択します。
(Excel2010以下では“FLOOR”になります )
20141115-14.JPG

数値:作業時間が入力されているセルを指定します
倍数:“0:10”と入力します。ここも半角のダブルクォーテーションを入れないとエラーになります。
20141115-17.JPG

と、このように10分単位で作業時間が切捨てれました。
20141115-15.JPG

これらの関数は、数値の端数処理用の関数ですが、このように時間の集計計算にも応用が可能です!


関連ページ
CEILING関数で指定した値の倍数で切上げをしてみた(端数処理)
日付、時刻関数のシリアル値とは
日毎の作業時間(経過時間)を集計してみた /ピボットテーブル
関数一覧(カテゴリ別)
関数一覧(名前別)


posted by haku1569 at 13:47| Excel関数応用 | このブログの読者になる | 更新情報をチェックする
' + adSrc + '<' + '/body>'); d.close(); } loadAd(); window.setTimeout(loadAd, reloadSec * 1000); window.setTimeout(function() {adDiv.style.display = 'none'}, hideSec * 1000); }); }