Gizport
1 回答
0
Share (facebook)
160
view
全般

Excelで勤務表を作成しています。控除時間を求めたいと考えており、...

Excelで勤務表を作成しています。控除時間を求めたいと考えており、算式を考えたのですが、結果が「0に等しいとき、背景・フォントを変える」条件付き書式を設定しても、変更されません。 解決方法をご教授ください。

何度か知恵袋で助けて頂いています。ご回答頂いた皆様、ありがとうございます!


<労働条件>
・所定勤務時間:始業9:00〜終業18:00の8時間(ただし時短勤務者もいる)
・昼休憩:12:00~14:00の間に1時間(それ以外の休憩は考慮しない)
・残業時間:7:00〜9:00、18:00〜22:00
・深夜勤務時間:22:00〜7:00
・所定休日:土日祝日、年末年始(12/30-1/3) 所定休日勤務時は別途振替休日を取得する
・半日有休:午前休の場合、14:00〜18:00勤務、午後休の場合、9:00〜13:00勤務となる(いずれも休憩0)


<設定中のセル>
基本就業時間:
あらかじめ、S2セルに基本始業時間(9:00)、U2セルに基本終業時間(18:00)を設定しています。
これは社員によっては時短勤務などがあるためです。

勤怠分類:
X15〜X27セルに勤怠分類として「通常勤務、全日有休、半日有休、休日出勤、振替出勤、代替休暇、振替出勤、振替休日、生理休暇、慶弔休暇、遅刻、早退、欠勤」と設定してあります。

勤務表本体:
添付画像のとおりで、以下の設定になっています。(関係ありそうなセルのみ説明を入れています)
A10: 日付
B10: 曜日
C10: 勤怠 [プルダウンで手入力設定]
D10: 始業時間 [手入力]
E10: 終業時間 [手入力]
F10: 日数
G10: 欠勤
H10: 休憩時間
H10: 所定時間内勤務時間数 [=IF(COUNT(D10:E10)<2,"",IF(AND(WEEKDAY(A10)=1,OR(C10=$X$17,C10=$X$18)),0,IF(AND(WEEKDAY(A10)=7,OR(C10=$X$17,C10=$X$18)),0,MIN($U$2,IF(AND(E10<=D10,E10<="7:00"*1),E10+1,E10))-MAX($R$2,D10)-H10)))]
J10: 法定内残業時間数
K10: 所定外残業時間数
L10: 法定休日時間数
M10: 深夜勤務時間数
N10: 控除時間数 [=IF(C10=$X$19,"8:00",IF(COUNT(D10:E10)<2,"",IF(OR(C10=$X$17,C10=$X$18),0,IF("8:00"*1-(E10-D10-H10)=0,0,MAX(0,"8:00"*1-(E10-D10-H10))))))]
O10、P10: 総労働時間数(30分単位、15分以下切り捨て)


<質問:N10の「控除時間」で、「0:00」になっても書式が変わってくれない>
「控除時間」欄では、時短勤務や、遅刻・早退などで勤務時間が所定勤務時間(8時間)を下回った場合、差分を表示します。また、代替休暇を取った場合も、一律8時間をこの欄に表示します。
計算そのものは、現在設定している内容で、どうやら合っているようなのですが、「0:00」が「0」として認識されないようです。
具体的には、「条件付き書式」を設定しており、「値が0に等しい」場合、背景・フォントともにグレーにする(見た目非表示にする)ようにしたいのですが、始業・終業時刻が基本始業・就業時間と一致する場合(=控除時間が「0:00」の場合)、0のはずなのに書式が切り替わらず、「0:00」となってしまいます。
ちなみにセルの書式は「時刻」にしていますが、ユーザー書式で「[h]:mm」にしても結果は同じです。

この「見た目非表示にする」方法について、どなたかご教授頂けないでしょうか。
原因としては、もしかすると、現在設定している算式で、最後の「"8:00"*1-(E10-D10-H10)」の計算結果が、E10=18:00、D10=9:00、H10=1:00 のケースであっても、0になっていないのでは?と思うのですが、解決策が思いつきません。

ややこしい質問ですみませんが、どうぞよろしくお願い致します。
Yahoo!知恵袋 3563日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
>どうやら合っているようなのですが、「0:00」が「0」として認識されないようです

この辺がXL特有の演算誤差っぽいですね

わざとN10を以下のようにしてみたらどうでしょうか?
=TEXT(〜,"h:mm")*1

これで変われば演算誤差
整数部、小数点以下を含め16桁存在する微小な数値誤差です

//
Yahoo!知恵袋 3563日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
51
Views
質問者が納得>どうやら合っているようなのですが、「0:00」が「0」として認識されないようです この辺がXL特有の演算誤差っぽいですね わざとN10を以下のようにしてみたらどうでしょうか? =TEXT(〜,"h:mm")*1 これで変われば演算誤差 整数部、小数点以下を含め16桁存在する微小な数値誤差です //
3563日前view51
全般
27
Views
質問者が納得順列が重複しないようにしようと思ったら重複した時に入れ替えをやり直すようにするしか手がないように思うのですが…そのブランクでは普通は不可能ですから、この問題の意味は「1つの順列内での要素の重複を許さない」という意味なのではないでしょうか。
4010日前view27
全般
147
Views
質問者が納得Yahooオークションで出品されています。 残り2日ですが、1,698円で即決落札できますよ!! 消費税はかかりません!! “早い者勝ち”の限定1個です。 貴方のテレビにピッタリの純正品ですよ~ yahooオークションの売り子がいれば・・・・・ 暇だったので、“こんな感じかな?”とやってみました。 下記を参照して頂ければ、同型品がありましたので・・・・・ http://page17.auctions.yahoo.co.jp/jp/auction/v194711362 あと・・・・ 送料を忘れて...
4610日前view147
全般
39
Views
質問者が納得物理的原因を考えてみてはどうでしょうか? LANケーブルは問題ないでしょうか? LANケーブル自体に破損があったり、コネクタに問題がないかは調べてみましたか? 後は、バックアップを行ってから全て初期化しての再設定ですかね。 意外と簡単なところに解決策がある場合もありますので。
4901日前view39
全般
115
Views
質問者が納得マルチという意味がわかりませんが。 現在は、あいにく品切れのようですが、ここのACアダプターは種類も多く、安いです。 ただしコネクターは、一般的な5mm◎のものになっていますから、なんらかの変換をしないとだめかもしれません。 http://akizukidenshi.com/catalog/g/gM-00244
5388日前view115

関連製品のQ&A