プロが教えるわが家の防犯対策術!

お尋ね致します。
エクセルで、1日7時間45分の勤務表を作成いたしております。
有給休暇の使用日時と残り日時を時間から日にちと時間で表示したいのですが
どなたか、教えてください。
例 取得時間は7時間45分×15日=116.25時間→15日
  有給使用時間は22.75時間→2日間7時間15分
  残り有給時間は116.25-22.75=93.50→12日間30分
時間を日にちと時間に変換する関数の作りかたを
教えてください。宜しくお願いします。

「有給休暇の管理」の質問画像

A 回答 (2件)

No.1です。



>・・・・・・と30人分作成してあります。

ん~~~結構厄介ですね。
それぞれに一気に表示させるのではなく、
別シートに30人分のデータを表示させておき、そのSheetを参照させてみてはどうでしょうか?

↓の画像ではSheet2の1行目に氏名・隣のセルに有給休暇の日数を入れ、その下に有給休暇をとった日付と使用時間を入力するようにしてみました。
Sheet1の薄い黄色いセルにすべて数式を入れています。
(作業用の列は前回のNo.1のままでOKです)

Sheet1のB1セルに該当氏名を入力すると表示されます。

C2セルに
=IF(D2="","",D2*7.75)

D2セル(セルの表示形式はユーザー定義から 0日 にしています)に
=IFERROR(INDEX(Sheet2!1:1,,MATCH(B1,Sheet2!1:1,0)+1),"")

B5セル
=IFERROR(IF(COUNTA(OFFSET(Sheet2!$A$3:$A$30,,MATCH($B$1,Sheet2!$1:$1,0)-1))<ROW(A1),"",OFFSET(Sheet2!$A$2,ROW(A1),MATCH($B$1,Sheet2!$1:$1,0)+COLUMN(A1)-2)),"")
とし、となりのC5セルまでフィル&コピー

D5セル
=IFERROR(IF(H5,H5&H$4,"")&IF(I5,I5&I$4,"")&IF(J5,J5&J$4,""),"")

E5セル
=IFERROR(C$2-SUM(C$5:C5),"")

F5セル
=IFERROR(IF(L5,L5&L$4,"")&IF(M5,M5&M$4,"")&IF(N5,N5&N$4,""),"")

B5セルの表示形式は好みの「日付」に、
C5セルの表示形式は標準で小数点以下表示は2桁にしておきます。
最後にB5~F5セルを範囲指定 → F5セルのフィルハンドルで下へコピーすると
画像のような感じになります。

これでB1セルのデータを変更するたびに表示されるはずです。

※ 一旦その人のデータを表示させないと有給休暇(時間)の残りが把握できないので
ちょっと手間がかかるかもしれませんね。m(_ _)m
「有給休暇の管理」の回答画像2
    • good
    • 0
この回答へのお礼

tom04 様
出来ました!
<m(__)m><m(__)m>(*^-^*)
関数を使いこなせる人は羨ましいです。
助かりました。
ありがとうございました。

お礼日時:2015/12/29 23:06

こんにちは!



一案です。
一気に!となるとダラダラと長い数式になってしまい、間違っていた場合に数式のメンテナンスが大変でしょうから
↓のように作業用の列を何列か設けてみてはどうでしょうか?

H4~J11セルがD5以降のセル用(作業列1)
L4~N11セルがF5以降のセル用(作業列2)
H15~J16セルがD12セル用(作業列3)
の表とします。
(目障りであれが遠く離れた列にするか、非表示にしてください)

H5セルに
=INT(C5/7.75)
I5セルに
=INT(MOD(C5,7.75))
J5セルに
=MOD(MOD(C5,7.75),1)*60
という数式を入れそれぞれをフィルハンドルで下へコピー!

L5セルに
=INT(E5/7.75)
M5セルに
=INT(MOD(E5,7.75))
N5セルに
=MOD(MOD(E5,7.75),1)*60
という数式を入れそれぞれをフィルハンドルで下へコピー!

H16セルに
=INT(C12/7.75)
I16セルに
=INT(MOD(C12,7.75))
J16セルに
=MOD(MOD(C12,7.75),1)*60
という数式を入れておきます。

D12セルには
=IF(H16,H16&H15,"")&IF(I16,I16&I15,"")&IF(J16,J16&J15,"")

D5セルに
=IF(H5,H5&H$4,"")&IF(I5,I5&I$4,"")&IF(J5,J5&J$4,"")
という数式を入れフィルハンドルで下へコピー!

F5セルに
=IF(L5,L5&L$4,"")&IF(M5,M5&M$4,"")&IF(N5,N5&N$4,"")
という数式を入れフィルハンドルで下へコピー!

これで画像のような感じになります。

※ 各表の項目名をD・F列に表示させるようにしていますので
項目名は画像通りにしてください。m(_ _)m
「有給休暇の管理」の回答画像1
    • good
    • 0
この回答へのお礼

tom04 様
ご回答
有難うございました。
早速、関数を入力してみました。
出来ました!

やはりA列~F列の間には入りませんね。
言い忘れていましたが(ごめんなさい。)

G列~L列・M列~R列・S列~X列・・・・・・と30人分作成してあります。
横段は1年分のスペースがあります。

表を作り直ししかないでしょうね。

ありがとうございました。

お礼日時:2015/12/29 18:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!