- ベストアンサー
エクセル2007で時間帯勤務状況の分かるシフト作成方法
- エクセル2007を使って、時間帯ごとの勤務状況が分かるシフトを作成する方法を教えてください。
- 現在、5分単位で稼働人数の分かるシフトを作成していますが、休憩時間を追加したいです。
- 具体的には、パターン1とパターン2の休憩時間をシフト内の特定のセルに表示させたいです。他に良い方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
時間の表示は同じでもシリアル数では合わない場合もありますので、なかなか難しいですね。 次のようにして、時間と分をプラスして分で統一して比較することでやっと解決できました。 表はご提案のとおりとしてパターンについてはその番号をA25から下行に1から20までA44セルまでに入力し、例えば1のパターンではA25セルに1、B25セルに10:00,C25セルに10:15,D25セルに12:00,E25セルに13:00,F25セルに15:00,G25セルに15:15のように入力するとします。 そこで、D2セルから下方にはパターンの番号、例えばD2セルに1と入力します。 E2セルには次の式を入力してFE2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNT($B2:$D2)<>3,"",IF(OR(AND(HOUR(E$1)*60+MINUTE(E$1)>=HOUR(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),2))*60+MINUTE(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),2)),HOUR(E$1)*60+MINUTE(E$1)<HOUR(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),3))*60+MINUTE(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),3))), AND(HOUR(E$1)*60+MINUTE(E$1)>=HOUR(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),4))*60+MINUTE(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),4)),HOUR(E$1)*60+MINUTE(E$1)<HOUR(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),5))*60+MINUTE(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),5))),AND(HOUR(E$1)*60+MINUTE(E$1)>=HOUR(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),6))*60+MINUTE(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),6)),HOUR(E$1)*60+MINUTE(E$1)<HOUR(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),7))*60+MINUTE(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),7)))),"□",IF(AND($B2<=E$1,$C2>E$1),"■","")))
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No2です。ネットのつながりが悪く別の答えを用意していましたが提示できませんでした。 次の式をE2セルいは入力するのがよいでしょう。 =IF(COUNT($B2:$D2)<>3,"",IF(OR(AND(ROUND(E$1,5)>=ROUND(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),2),5),ROUND(E$1,5)<ROUND(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),3),5)),AND(ROUND(E$1,5)>=ROUND(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),4),5),ROUND(E$1,5)<ROUND(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),5),5)),AND(ROUND(E$1,5)>=ROUND(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),6),5),ROUND(E$1,5)<ROUND(INDEX($A$25:$G$45,MATCH($D2,$A$25:$A$45,0),7),5)) ),"□",IF(AND(ROUND($B2,5)<=ROUND(E$1,6),ROUND($C2,5)>ROUND(E$1,5)),"■","")))
- MackyNo1
- ベストアンサー率53% (1521/2850)
現在のシートをそのまま生かすなら、E2セルに以下の式を入力して右方向および下方向にオートフィルしてください(パターン2の場合にD列のセルに「2」と入力した場合)。 =IF(AND($B2<=E$1,$C2>E$1),IF(OR(AND(E$1<"10:15"+"0:15"*($D2=2),E$1>="10:00"+"0:15"*($D2=2)),AND(E$1<"13:00"+"0:15"*($D2=2),E$1>="12:00"+"0:30"*($D2=2)),AND(E$1<"15:15"+"0:15"*($D2=2),E$1>="15:00"+"0:15"*($D2=2))),"□","■"),"")