プロが教える店舗&オフィスのセキュリティ対策術

月間勤務表から週間勤務表をつくるのに、出勤している職員を抽出して自動かしたいので
手始めに1日~31日までの各日付ごとに職員を抽出する方法を考えたのですがVLOOKUPは使えなさそうなので何かほかの
方法はない物かと、模索していましたが行き詰ってしまいました。
皆様のお力おかしください。

添付した画像が私が使っているエクセルで作製した月間勤務表となります。名前の列に
8・5・7.5が記入してあるのが出勤という意味です、⑧は有給で研は研修と言う意味です。

抽出した名前は別シートに貼り付けたいと思っております。
説明の至らぬ点が多々あるとは思いますが、宜しくお願い致します。

「月間勤務表から1日~31日までの各日付ご」の質問画像

質問者からの補足コメント

  • ご指摘頂いた名前を別シートに貼り付ける際、こんな感じで名前を張り付けたいと言うイメージを
    セルに直接入力して作りましたので回答頂ける方の参考にして頂けたらと思います。

    「月間勤務表から1日~31日までの各日付ご」の補足画像1
      補足日時:2017/09/21 20:43
  • ご指摘いただいた、画像が小さい点を改良し拡大したものと
    教えて頂いた関数を入力した結果の画像もアップいたしますので
    ご助言お願いいたします。

    「月間勤務表から1日~31日までの各日付ご」の補足画像2
      補足日時:2017/09/22 02:13
  • 下部分

    「月間勤務表から1日~31日までの各日付ご」の補足画像3
      補足日時:2017/09/22 02:14
  • 関数を入れた結果

    「月間勤務表から1日~31日までの各日付ご」の補足画像4
      補足日時:2017/09/22 02:15

A 回答 (4件)

続けてお邪魔します。



>0と表示される個所が所々ありました・・・
「0」が表示されるのは対象セルが空白の場合にそのようになります。

ん~~~
お示しの画像の配置だとかなり厄介ですね。
画像を拝見して、「月間シフト貼り付け」シートのC列氏名は41行目までだと解釈しました。
かなり強引にやってみました。

Sheet2(日付ごと出勤名簿)のA2セルに
=IFERROR(INDEX(月間シフト貼り付け!$C$7:$C$41,SMALL(IF((月間シフト貼り付け!$C$7:$C$41<>"")*(NOT(ISNUMBER(FIND("計",月間シフト貼り付け!$C$7:$C$41))))*((月間シフト貼り付け!F$7:F$41=8)+(月間シフト貼り付け!F$7:F$41=5)+(月間シフト貼り付け!F$7:F$41=7.5)),ROW($A$7:$A$41)-6),ROW(A1))),"")

前回同様、配列数式なのでCtrl+Shift+Enterで確定し
フィルハンドルで列・行方向にコピーしてみてください。

※ 万一、C列氏名に 「計」が含まれる名前(たとえば「加計学園」など)のセルは無視されてしまいます。

※ 本来であればC列(名前列)には名前以外の項目を入れない方が簡単です。m(_ _)m
    • good
    • 1
この回答へのお礼

教えて頂いた関数を入力したところ、0も消え名前以外の項目もきれいに消えていました。
正に私がやりたっかた事です。
ここまで丁寧に教えて頂きありがとうございました。

教えて頂き日付ごとのスタッフを抽出出来たので、ここから同じ週に同じポジションにつかないような
関数を調べて自動化できるよう頑張ってみます。
本当にありがとうございました。

お礼日時:2017/09/22 12:54

No.2です。



投稿後思ったのですが、
有給や研修も出勤扱いにするのが普通ですよね?

となると前回の数式では「⑧」や「研」は含まれていませんので別の数式にする必要があります。

ただ、お示しの画像が小さすぎて詳細が判りません。
氏名列に空白セルがあるように見えますし、その行に何らかのデータが入っていますよね?

表全体は必要ないので、上側の画像の左部分だけでも詳細が判れば
少しはお役に立てるかも・・・m(_ _)m
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
作ろうとしている物がシフト表なので研修や有給を使っている職員はシフトに入る
事がないのでご心配していただいてる点は問題ございません。

早速教えて頂いた関数を打ち込んだところ私が思っている物とほぼ同じものが出来上がりました。
ただ何故か0と表示される個所が所々ありました基準合計等の職員以外の名前は合計人数の行の数字を消せば
解決したのですが0がなぜ表示されたのかがわかりませんでした

画像の拡大したものを再度アップいたしますのでご確認いただき、ご助言をお願いいたします。

お礼日時:2017/09/22 02:10

こんばんは!



抽出するのは「8・5・7.5」が記入してある行だけでよいのでしょうか?
(⑧や研は含まない)

一応そういうコトだとして、やり方だけ・・・
↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。
尚、日付セルは考慮していませんので、
Sheet1のF列から順に表示されます。

画像ではSheet2のA2セルに
=IFERROR(INDEX(Sheet1!$C$7:$C$100,SMALL(IF((Sheet1!F$7:F$100=8)+(Sheet1!F$7:F$100=5)+(Sheet1!F$7:F$100=7.5),ROW($A$7:$A$100)-6),ROW(A1))),"")

配列数式なのでCtrl+Shift+Enterで確定!
A2セルのフィルハンドルで列・行方向にコピーしています。

※ ⑧や研も出勤扱い(空白以外は出勤扱い)の場合は
もう少し簡単になります。m(_ _)m
「月間勤務表から1日~31日までの各日付ご」の回答画像2
    • good
    • 0

私が回答できる訳ではありませんが、


>抽出した名前は別シートに貼り付けたいと思っております。
別シートに張り付けた結果を画像として提示していただければ、より良い回答がつくと思います。
現状では、抽出した名前をどのように張り付けるのかが判りませんので、回答がつきにくいかと思います。
    • good
    • 0
この回答へのお礼

確かにそうですね。
さっそく画像を張り付けたいと思います。
ありがとうございました。

お礼日時:2017/09/21 20:29

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング