解決済み
エクセル関数の質問です。 勤務表から指定した日の出勤者を作業日報に書き出したいと考えています。 画像の左が勤務表、右が作業日報です。①薄青欄に勤務記号「AA」の人を、 ②薄緑には早番帯の他の記号(A3,A5,A7)の人を、 ③薄黄欄には「休み」「早番帯」「遅番帯」以外の記号の人たちを書き出したいのです。 勤務記号が多いので、画像の右端に記号一覧を入れてあります。 同じような質問はいくつかありましたが、私の勤務表は縦に日付があり他の方と作りが異なるので自分ではそれらを参考に解決することができませんでした。 関数は最近独学で始めて勉強中ですのでご回答は関数でお願いします。 マクロやVBAなどは一切わかりません。 どうかお助けください。よろしくお願いいたします。
画像説明に誤りがありました。 左上が勤務表、左下が作業日報、右側が勤務記号です。
239閲覧
数式だけでやるという事なので大量(人数*2)の列を作業列にしないと出来ません。 下記の回答は人数が10人(勤務表のD4からM4)の場合です。 作業日報のD4は日を表す1桁か2桁の数字が入っている前提です。 勤務表のO列からAH列まで作業列です。 O5の式 =IF(D5="AA",1,IF(LEFT(D5,1)="A",2,IF(OR(D5="BB",D5="BE",D5="12:00~17:00"),3,""))) この式を右へX5までコピー Y5の式 =IF(O5="","",O5&"-"&COUNTIF($O5:O5,O5)) この式を右へAH5までコピー O5からY5を日付分(31日まで表だと思うので35行まで)下へコピー 作業日報のB4 =IFERROR(INDEX(勤務表!$D$4:$M$4,MATCH(1&"-"&ROW(A1),INDEX(勤務表!$Y$5:$Y$35,$D$2):INDEX(勤務表!$AH$5:$AH$35,$D$2),0)),"") B6まで下へコピー 作業日報のB7 =IFERROR(INDEX(勤務表!$D$4:$M$4,MATCH(2&"-"&ROW(A1),INDEX(勤務表!$Y$5:$Y$35,$D$2):INDEX(勤務表!$AH$5:$AH$35,$D$2),0)),"") B9まで下へコピー 作業日報のB10 =IFERROR(INDEX(勤務表!$D$4:$M$4,MATCH(3&"-"&ROW(A1),INDEX(勤務表!$Y$5:$Y$35,$D$2):INDEX(勤務表!$AH$5:$AH$35,$D$2),0)),"") B13まで下へコピー ※初めての投稿のようですね。質問にはカテゴリがあります。この内容だとエクセルがふさわしいです。
< 自分のペースで、シフト自由に働ける >
パート・アルバイト(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る