- ベストアンサー
勤務管理で曜日により契約時間をリストから
出勤時間と退勤時間を入力するとその日の給料が表示される 1か月分のシートを作っています 契約勤務時間は曜日により毎日違う時間になっています。 月曜は4時間、火曜は5.5時間 水曜は7時間木曜は6時間、金曜は6.5時間 土曜は7.5時間、日曜は休みと毎日ばらばらです。 今までは実労働の出退勤時間を表示させるだけでしたが、 残業が毎日有るので、契約時間と実労働との差を表示したいのです。 シートのA1には月日 B1には”=A1”として曜日表示(aaa)にしています C1にもしB1が月曜なら4を返すような式を入力したいのです。 WEEKDAY関数とVLOOKUP関数などで、できるのでしょうか? IF文を6段組んだら上限を超えてしまい作れませんでした。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
=CHOOSE(WEEKDAY(A1,2),4,5.5,7,6,6.5,7.5,"休") といった具合で。 #参考 >IF文を6段組んだら上限を超えてしまい作れませんでした。 =IF(WEEKDAY(A1)=1,"休",IF(WEEKDAY(A1)=2,4)+IF(WEEKDAY(A1)=3,5.5)+IF(WEEKDAY(A1)=4,7)+…) といった具合に継ぎ足していけば、かっこの重ね合わせをせずに出来ます。 ご相談では日曜日だけ「休」の文字なので一段だけ重ねていますが、日曜日をゼロにしていいなら全部足し算だけで出来ます。(ゼロのセルを「休」と表示させることもできます)
お礼
すごい! できました。 CHOOSE関数 いろいろ調べてる時に目にしましたが、 よくわかりませんでした。 教えて頂いたその通りにしたら、思う通りの数字が 返ってきてとっても嬉しいです。 IF文についても入れ子にしなくてもできるのですね。 それもびっくりです。 本当に有難うございます。 CHOOSE関数しっかり勉強してみます。