重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

エクセルの複雑なシフト表から当日の出勤者と勤務時間帯を抜き出し、一目でわかるようにしたいです。
写真の左側のシフト表から、右側に当日の出勤者の名前を一目でわかるように出せませんか?
右側でなくても、下でも別ブックでも大丈夫です。
色々調べて試行錯誤したのですが、お手上げでして...

どうかよろしくお願いいたします。

「エクセルの複雑なシフト表から当日の出勤者」の質問画像

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

  • 複雑な勤務体系のシフト表から当日の出勤者を抜き出し、名前を表示させたいです。

    写真の左側が、シフト表です。
    3Fや3遅、4早などは、勤務体系です。
    このシフト表から、左の表に、この日はどの勤務体系に誰が出勤しているのか、名前を表示させたいです。

    色々と数式を入力してみているのですが、お手上げでして、詳しい人の力を借りたくお願いいたします。

    Excel2019を使用中です。

      補足日時:2025/05/11 09:33

A 回答 (11件中1~10件)

No8です。

下記にアップしました。
https://114.gigafile.nu/0516-bcfda1336c93c8798e9 …
ダウンロード後のファイルはマクロが実行禁止になっています。
それを解除してから実行してください。
解除の仕方が不明な場合は、補足してください。

マクロの仕様に関して
勤務表に登録してある勤務が勤務体系にない場合、無視しています。
もし、その場合、エラーメッセージを出したいなら、
69行目の
'MsgBox (name & " の " & aday & "日の勤務(" & shift & ")は勤務体系に登録されていません")
のコメントを取ってください。(先頭の'を取ります)
そうすると、エラーメッセージが表示されるようになります。
但し、勤務体系にないケースがかなりあるので、エラーメッセージが頻発します。その点、注意してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
無事にダウンロード、実行できました。

これを基に色々勉強してみようと思います!

何と御礼をして良いか分かりません。
本当にありがとうございます。

お礼日時:2025/05/12 11:40

No10です。


ダウンロードキーは 8000 です。
    • good
    • 0
この回答へのお礼

Thank you

お礼日時:2025/05/12 11:38

No2です。



表の内容の詳しい説明がないので、不明点は以下のように解釈しました。


・結果表示蘭が結合されていたりいなかったりといろいろで、かつ途中に1行空きがありずれているようなので、AL列に値がある行のみを検索対象として、その行に結果を表示するものとします。
・AL列の文字と「完全一致」する値を有する担当者を抽出するものとします。
・該当者が複数存在する場合は、カンマを区切りとして、連結して表示することとします。
・勤務表では一人が1日に2セルを使っているようですが、上段の行のみ参照しても良さそうですが、一部に「PM3F」のように下段にあるものも見受けられるので、上段または下段のセルが完全一致すれば該当者として見做すものと解釈しました。


ご提示の表で、AN8セルに、
=IF($AL8="","",TEXTJOIN(", ",1,INDEX(LEFT($A$8:$A$60,((C$8:C$60=$AL8)+(C$9:C$61=$AL8))*10),)))
の関数式を入力し、右方、下方にフィルコピーすることで、該当者の名前が列挙されるようになります。


※ 結合セルと非結合セル間では、フィルコピーができませんので、式中のセル位置は、通常のフィルコピー時に変更されるのと同じように変更する必要があります。
※ 解釈が違っている場合でも、式の内容は抽出の要領としては使えると思いますので、条件が異なる部分を修正していただければと思います。
※ 上記はバージョン2019対応の関数式にしてありますが、365等であればFILTER関数等を利用できるので、式も簡単にできると考えられます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
これを基に色々勉強してみようと思います。

お礼日時:2025/05/12 11:41

No7です。


>記載事項、全て問題ありません。

上記の前提で、更に追加で確認事項があります。
1.左側の勤務表ですが、ひとり2行を使用しています。
①ひとりの人が当日、2つの勤務をすることがあるために、2行割り当てていますか。
②それとも、上の行が、勤務体系で、下の行はコメントとして使用しているのでしょうか。
①、②のどちらでしょうか。
①なら、上の行と下の行の両方を勤務体系が指定されたとして扱います。
②なら、上の行のみ勤務体系が指定されたとして扱い、下の行は無視します。

2.今月度(4/21~5/20)は、30日分ですが、来月度は31日分になります。その場合、右側の表の開始列は、変わりますか。
(現在、38列(AL列)になってますが、翌月度は39列(AM列)になりますか)
もし、変わるなら、翌月になったらマクロを修正する必要があります。
もし、マクロを変えたくないなら、予め開始列を最大列にしておく必要があります。その場合は、AM列から開始にしておけば問題ないです。

3.下記の3名割り当ての勤務体系ですが、この勤務体系のみ例外として扱うとマクロが非常に複雑になるので、以下のようにしたいのですが、宜しいでしょうか。
"朝4F
AM入浴
PM5F"

勤務体系を
朝4F、AM入浴、PM5Fの3つに分けて登録する。
マクロを実施した後で、担当者が目視で、
朝4F、AM入浴、PM5Fに名前が1人ずつ割り当てられていることを確認する。
上記のようにすれば、ほかの勤務体系と同じ扱いになります。
従って、1つの勤務体系には2名まで割り当て可能です。
朝4F、AM入浴、PM5Fには、2名まで割り当て可能だが、目視で1名であることをチェックします。

確認ですが
朝4F(AL53)とAM入浴(AL47) が既にありますが、これは、
3名体制の
"朝4F
AM入浴
PM5F"
とは、別の勤務体系でしょうか。
もし、そうであれば、3名体制は
"〇朝4F
〇AM入浴
〇PM5F"
等のように名称を変えてください。
同じであれば、
"朝4F
AM入浴
PM5F"
は、1かたまりに登録したほうが良いかと思います。

4.今後、勤務体系が追加になることがありますか、
もしそうであれば枠を大きくとっておきますが、いくつほど確保しておけば良いでしょうか。現在は29個です。(3名体制は3個としてカウント)
最大個数を提示してください。

5.現行で勤務人数は、最大27名ですが、この人数で良いでしょうか。
今後、増える可能性があれば、更に大きくしておきます。その場合は、最大人数を提示してください。
    • good
    • 0
この回答へのお礼

1.左側の勤務表ですが、ひとり2行を使用しています。
⇒上の行と下の行の両方を勤務体系が指定されたとして扱います。

2.
⇒マクロを変更するのは他の担当にはスキル的に難しいので、AM列から開始で運用します。

3.
⇒分かりました。問題ありません。

4.今後、勤務体系が追加になることがありますか、
⇒今後を考え40個程度でお願いします。

5.現行で勤務人数は、最大27名ですが、この人数で良いでしょうか。
⇒今後を考え40人でお願いします。

ありがとうございます。
よろしくお願いいたします。

お礼日時:2025/05/11 17:03

No4です。

補足ありがとうございました。
アップされたexcelを参照しました。
マクロで良ければ、提供可能です。
以下、その前提での補足要求になります。マクロが不要であれば、無視してください。

1.5早と6早の間に、不要な1行があります。マクロの場合、イレギュラーな、行列に並びがあると、正しく処理できないので、この行を削除しますが宜しいでしょうか。

2.1つの勤務体系には2名までが名前を登録可能という前提で良いでしょうか。ちなみに、提示されたexcelのシートには、19日の「4日」の勤務は、A子、C子、H子が割り当ててあり、H子は登録できなくなりますが、宜しいでしょうか。

3.名前を登録する欄が結合セルになっている箇所があります。
(例 AN8とAN9 が結合セル)
これらは、全て結合無しのセルにしますが宜しいでしょうか。

4.下記の勤務体系は3行使ってますが、3名分が割り当てられるということでしょうか。もし、そうであれば、全ての勤務体系を3名割り当て可能な形にしますが、宜しいでしょうか。
"朝4F
AM入浴
PM5F"

又、この勤務体系を左側の勤務表に登録するとき、
朝4F と AM入浴 と PM5F と分けて書きたいということでしょうか。

5.勤務体系にない勤務は、エラーメッセージを表示せずに無視しますが宜しいでしょうか。
例 
8:30~ 
8~3日
~17:30

以上、ご確認ください。
    • good
    • 0
この回答へのお礼

本当にありがとうございます。
感謝いたします。

記載事項、全て問題ありません。

よろしくお願いいたします。

お礼日時:2025/05/11 14:40

質問者さん、シート2に個人名入ってますよ

    • good
    • 0
この回答へのお礼

お知らせいただきありがとうございます。
申し訳ございません。削除いたしました。

お礼日時:2025/05/11 12:17

もとのプログラムが表示した数値を拾い出すことに無理があります。


プログラム自体を見直して新たに組み込む必要性があると思いますね。

結果
目的に沿ったプログラムを作り直した方が早いかと思われます
    • good
    • 0
この回答へのお礼

ありがとうございます。
そうですよね。

お礼日時:2025/05/11 12:17

画像が不鮮明なのは、あなたのせいではありません。

このサイトの仕様によるものです。yahooの知恵袋がこのサイトと同じように質問・回答ができるようになっています。yahooの知恵袋にアップされた画像は、拡大可能で鮮明な画像になります。
これと同じ内容の質問をyahooの知恵袋に投稿されてはいかがでしょうか。
そして、そのURLをこちらのお礼欄、もしくは補足欄に提示していただければ、yahooの知恵袋の画像をgooの回答者が見ることができます。
そうすれば、良い回答が得有られやすくなります。
    • good
    • 1
この回答へのお礼

ありがとうございます。

Yahoo知恵袋に再投稿してみました。
見られますでしょうか。

https://detail.chiebukuro.yahoo.co.jp/qa/questio …

お礼日時:2025/05/11 09:31

添付している画像がみづらいです。

これでは適切な回答がしづらいので、エクセルファイルをアップロードしてリンクを貼ってください。隠したいところは空白にしてください。
    • good
    • 1
この回答へのお礼

ありがとうございます。

https://44.gigafile.nu/0516-dd278437aa828b13ff0d …
PWは8000です。
よろしくお願いいたします。

お礼日時:2025/05/11 09:36

こんばんは



ご提示の条件(=図)がさっぱりわからないので、考えようがないですね。

左側の表は、
 ・列方向(=横)に日付が並んでいるらしい?
 ・行方向(=縦)に各担当者の予定(?)があるらしい?
ということしかわからず、予定(?)の記入方法や意味は全くわかりません。
右側の表は、
どのような構成にしたいのかまるでわからないので、どのような結果を求めたいのかもわかりません。


上記の条件等をきちんと伝えることができれば、回答がつくかもしれません。
(私が、回答できるとは限りませんけれど)
また、ご利用のエクセルのバージョンによって使える関数も異なるので、それも示しておいた方が宜しいかと。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2025/05/11 09:32

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


OSZAR »