エクセル実践塾 > エクセル実践塾2016

退勤時刻が翌日にまたがらない前提で、 深夜時間を求めたい

 

MAX(0, 退勤時刻 - 最大の出勤時刻)のようにして、 重複範囲を求める方法があります

MOD([@退勤時刻],1) とすると、退勤時刻の小数部分(時刻部分)を取り出すことができます。

MOD関数を使って、[@退勤時刻] を 1 で割ると、整数部分が除かれ、時刻を表すシリアル値の小数部分だけが残ります。

 

=MAX(0,MOD([@退勤時刻],1)-MAX(MOD([@出勤時刻],1),TIME(22,,)))

このような数式にすると、退勤時刻と出勤時刻を基にして、深夜労働時間(22:00以降の労働時間)を求めることができます。

MAX(MOD([@出勤時刻],1),TIME(22,,))

後半のこの数式では、出勤時刻の時刻部分(MOD([@出勤時刻],1))と22:00(TIME(22,,))のうち遅い方を選びます。
出勤時刻が22:00より前 → 22:00を採用し、出勤時刻が22:00以降 → 出勤時刻を採用します。

MOD([@退勤時刻],1) - MAX(...)

中程のこの数式では、退勤時刻の時刻部分(MOD([@退勤時刻],1))から、出勤時刻と22:00の遅い方を引き算します。
計算結果が正の値であれば、それが深夜労働時間に該当します。

MAX(0, ...)

最終的に、このMAX関数で、計算結果が0未満(深夜時間外の場合)であれば、0を返します。
深夜労働時間が発生しない場合(出勤時刻や退勤時刻が22:00以降に重ならない)は0となります。

 


 

@MOD([@退勤時刻],1) とすると、退勤時刻の小数部分(時刻部分)を取り出すことができます

 

 

=MAX(0,MOD([@退勤時刻],1)-MAX(MOD([@出勤時刻],1),TIME(22,,)))

A左図のような数式で、退勤時刻と出勤時刻を基にして、深夜労働時間(22:00以降の労働時間)を求めます

表示形式を、

h:mm:ss;;#

とすれば、深夜労働が0時間の場合には、何も表示されなくなります。

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
 

 

●指定セルの値を条件として、テーブルをフィルタリングするマクロを作る動画です

関連する他のページ

労働時間を計算するユーザー定義関数を使って、 残業時間を求めるユーザー定義関数を作りたい
既存のユーザー定義関数は、 別のユーザー定義関数内で実行して、 その結果を利用することができます

勤務時間や残業時間を、簡単に集計したい
ピボットテーブルを使えば、個人別の集計を簡単に行えます

記録した時刻を、15分単位で丸めたい
CEILING関数を使うと、15分を基準値にして、その倍数で時刻を丸められます

残業時間を求めたい
労働時間から、 8時間を表す"8:00"を減算します

労働時間を求めたい
退社時刻から出社時刻と休憩時間を減算します

実働時間や残業時間を、 ○.○時間で求めたい
時間に24をかけて、 表示形式を「数値」にし、 小数点以下の表示桁数を調整します

残業時間や深夜時間、早出時間を計算したい
MAX関数を使えば、 それが存在するときにだけその時間が表示されるようにできます

所定労働時間を求めたい
MIN関数を使って、 法定労働時間の8時間を最大値とする数式を設定します

勤務時間0を非表示にしたい
休日の勤務時間0は、 表示形式をユーザー定義することで非表示にできます

勤務時間を計算したい
退勤時刻から出勤時刻を減算することで、 勤務時間を求められます

選択したセル範囲のデータから、一意のものを取り出したい
マクロなら可能です

選択したセル範囲のデータを、一列にまとめたい
10行程度のマクロでも行えます

組み合わせ一覧を表示するマクロを、 要素数と選び出す数を自由に指定できるものにしたい
入れ子構造のマクロでは汎用的にできないので、 再帰処理を使ったマクロにします

ABCの観点別評価の組み合わせパターンを知りたい
入れ子構造のマクロで求めることができます

ドロップダウンリストで選んだデータを、 選んだ直後に、 対応する別データに置換して入力したい
セル値の変化を監視するマクロで実行できます

置換リストを使って、 複数の置換をまとめて行いたい
10行程度のマクロで、 置換リストを使った一斉処理が可能です

セルに入力されている文字列を、そのシート名にしたい
簡単なマクロで実現できます

マクロ実行の対象範囲を固定したい
セルやセル範囲は、 Rangeで指定できます

選択中のセル範囲に含まれる空セルを、 マクロ処理の対象から除外したい
空セルでないことを条件に、 マクロを実行するよう、 If文を追加します

選択中のセル範囲に対してのマクロ実行結果を、 別のセルに表示したい
Offsetを使うと、 対象のセルの位置を行列単位でずらすことができます

選択中のセル範囲に対するマクロを作りたい
For Each〜Nextで、 選択中のセル範囲(Selection)に対する処理を記述します

労働時間を求めたい
退社時刻から出社時刻と休憩時間を減算します

文字列を含む時刻計算でエラー表示させたくない
IFERROR関数を使うと、エラー値を任意の文字列に置き換えることができます