[[20210226100647]] 『時間の計算と正確なデータの表示』(ロココ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『時間の計算と正確なデータの表示』(ロココ)

15分ごとの残業を正確な法定残業時間を計算したいと思っています。

・個人個人のシートを作成済
・確認表シートには、個人ごとの残業時間を計算した15分刻みのデータを入してある

例えば、ある日の残業を個人のシートに、

開始時間”17:15”(C5)から終了時間”17:56”(D5)を引いて計算

IF関数「=IF(D5="","",$D5-$C5)」で計算して”0:41”(E5)と表示される

15分ごとの残業を『0.25』として最終的に計算したいので

・別シートに『確認表』残業が15分ごとに『0.25(別シートC4)、0.50(別シートC5)、0.75(別シートC6)』と入力して別表を作成

(F5)にIF関数「=IF(E5<"0:30",0,IF(E5<"0:45",確認表!$C$3,IF(E5<"0:60",確認表!$C$5,IF(E5="0:60",確認表!$C$6,"NG"))))」を入力してみた

(結果)
・計算結果が すべて『0:00』と表示される
(本来の『0.50』と表示したい)

個人のシートに確認表のデータを引っ張ってくるようにしたいのですが、うまくいきません。
IF関数またはVLOOKUP関数で、上記の作業はできますでしょうか。
また、違う方法がございましたら、教えてください。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 まず、E5<"0:30" は必ずTrueになります。
 E5<"0:30"*1 とするか、E5<TimeValue("0:30") としましょう

 "0:30"という文字列をシリアル値に自動で変換してくれないようです。
 他のところも同様です。

 >15分ごとに0.25 ....
 15分はどうなってるんでしょう。

 =INT(E5/TIMEVALUE("0:15"))*0.25

 とかの式でもいいような気がしますが。 
(´・ω・`) 2021/02/26(金) 11:35

 >=IF(E5<"0:30",0,IF(E5<"0:45",確認表!$C$3,IF(E5<"0:60",確認表!$C$5,IF(E5="0:60",確認表!$C$6,"NG"))))

 F5の ↑ の式では30分未満を「0」にしてますけど、合ってますか?

 15分未満 → 0
 30分未満 → 0.25
 45分未満 → 0.5
 60分未満 → 0.75
 60分   → 1
 60分超  → NG

 やりたいことはこれじゃないんですか?(なんで60分超は"NG"なのか知りませんけど・・・)

 これでいいのなら・・・
 まず、E5の式を変更します。

 E5 =IF(D5="","",TEXT(D5-C5,"h:mm")*1)
 表示形式「時刻」
 ※現状の式では演算誤差が生じる可能性があるので

 F5 =IF(E5="","",IF(E5>"1:00"*1,"NG",FLOOR(E5,"0:15")*24))
 表示形式「標準」

 別シートは使ってません。

 以上
(笑) 2021/02/26(金) 11:50

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.