- ベストアンサー
Excelで日報に残業時間を加える方法
- Excelを使用して日報に残業時間を加える方法について教えてください。
- 現在、Excel 2003を使用しています。シフト表と日報の二つのExcelの保存ファイルがあります。VLOOKUPを使用してシフト表の情報を日報に反映させています。しかし、日報の退社時間に残業時間を加える方法がわかりません。セルを増やすことでできるかもしれませんが、残業時間を表示させたいので、退社時間のセルに直接加える方法が知りたいです。
- また、日報の20:00の欄にはVLOOKUPの関数がつけられているため、時間を変更することはできないのでしょうか。お手数ですが、教えていただけると幸いです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
D 列の VLOOKUP 関数(本当に?)を足したり引いたり、という回答が既に出ており、勿論そういう書き方でも構いませんが、次のように、簡潔な参照で書いてもオッケー。 C列 =vlookup+d1 あるいは D列 =c1-vlookup ※必ずどちらか一方のみ、他方のセルには、時刻そのものを手入力など ※両方に上の 2 式を同時に入力すると、循環参照のため失敗 「残業時間は出勤・退勤の時刻から求めるもの」という見方をする人が多いんだろうなとは思いますが、逆に「退勤を定時と残業から求める」というのも、良いんじゃないでしょうか。個人的には、そういう数学的な思考は好きです。 算数では、足し算と引き算というのは逆演算であって、どちらが先とか、そういう区別は特別ありません(現代数学の群とか環がどうの、定義がどうのって議論は置いておいて)。ニワトリと卵、両者に順番を付ける必要はないし、まして、そうしなければならないというルールもありません。また、計算でも図形問題でも、分離とか結合というのは頻繁に行われる操作です。運用上の支障がないのであれば、どちらのスタイルでも、お好きなように。
その他の回答 (4)
- tsubuyuki
- ベストアンサー率45% (699/1545)
退勤時間を見つけるVLOOKUP式と残業時間を求めるVLOOKUP式は出来ているんですよね? だとしたら単純に =VLOOKUP(退勤時間を見つける内容)+VLOOKUP(残業を見つける内容) で求められますね。 個人的には・・ 日報はあくまでも「日々入力するもの」であって、 シフト表から参照するものではないはず・・ 日報での項目は 「出勤時刻・(定時)・(実)退勤時刻・残業時間(・休憩時間)」 ここから 定時内労働時間=定時-出勤(-休憩時間) 残業時間=退勤-定時 で求めるものだろうなぁ、とは個人的に思いますよ。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
フツ~、残業時間は出勤、退勤時刻と所定(定時)時刻(控除されるべき休み時間帯を含む)から計算する。 なので残業時間3.0の場合の退勤時刻は17:00にはなりえない。 チミは何か重大なミスを犯している。
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のようにすればよいでしょう。 仮にシフト表がシート2にあるとします。シート2ではA列に氏名、B列に出勤時間、C列に退勤時間が入力されているとします。 日報の表がシート1に有るとしてA1セルに氏名が入力したとすればB1には出勤時間、C1には退勤時間を表示させるわけですがその場合にはB1セルには次のような式を入力してC1セルまでドラッグコピーしていることでしょう。 =IF($A1="","",VLOOKUP($A1,Sheet2!$A:$C,COLUMN(B1),FALSE)) D1セルに超勤時間を入力した場合にC1セルの退勤時間をシフトの表からの時間に加算した状態で表示させるためにはB1セルには次の式を入力してC1セルまでドラッグコピーすればよいでしょう。 =IF($A1="","",IF(COLUMN(A1)=1,VLOOKUP($A1,Sheet2!$A:$C,2,FALSE),IF(COLUMN(A1)=2,VLOOKUP($A1,Sheet2!$A:$C,3,FALSE)+$D1,""))) この式では2列目のセルでは、つまりC列では、シート2からのシフト表からの時間にD列の時間をプラスした時間を表示しなさいということです。
- maiko0318
- ベストアンサー率21% (1483/6969)
名前と始業時間は =VLOOKUP(G1,A1:E2,2,0) =VLOOKUP(G1,A1:E2,3,0) でいいですよね。 =VLOOKUP(G1,A1:E2,4,0)+VLOOKUP(G1,A1:E2,5,0) とすれば足せます。が、休憩時間は引かなくていいのですか?