Excelでシフト表を作成するよう上司から言われて孤軍奮闘しておりますが、皆様のお知恵をお借りできればと思い質問させていただきます。
sheet1に月間シフト表を作成しました。D7〜AH7に21日から翌月20日の日付、B9〜B24に職員名が入っていまして、日・当・明・早・公が入れ込んであります。シート1には以下のような表を作成しました。
21 22 23
加藤 当 明 公
伊東 当 明 公
山田 早 公 当
佐藤 早 当 明
井上 公 当 明
と言うような感じです(ズレて表示されていたらすみません)
これをsheet2にわかりやすく反映させたいと思っています。
21 22 23
夜勤 加藤 佐藤 山田
夜勤 伊東 井上
早出 山田
早出 佐藤
公休 井上 山田 加藤
公休 伊東
というような感じでその日の夜勤者の枠に名前を反映させたいと思っているのですがなかなかうまくいきません。
わかりづらい文章で申し訳ありませんが、ご教授いただければありがたいです。よろしくお願いします
No.6ベストアンサー
- 回答日時:
No3です
No4様のご指摘はごもっともなので、改良版(?)を。
・・とは言っても、No3で述べたように使い物になる式とも思えないので、改良する必要はないのかも知れませんけれど。
式中の
MOD(ROW(A2),2)+1
の部分を
COUNTIF($B$9:$B9,$B9)
に変えれば、B列の項目の順序や出現回数を可変にすることができます。
質問文に提示されている内容にもともと不明点があるので、若干でも短くなる式にしてありました。
まぁ、こちらも、あくまでも「ご参考までに」ですけれど・・・
No.5
- 回答日時:
日・当・明・早・公と夜勤・早出・早出・公休が合わないんですが、
日勤・夜勤・早出・公休で、夜勤の翌日は明休でしょうか。明はかならず夜勤の直後に来るのであえて書かないということですか。また、日勤は、何も表示のない場合で夜勤明けでない場合なのでこれもあえて書かないということですか。表の見方に慣れていないと休んでしまいそうです。
一応勝手な解釈で進めます。
さて、この表を見る人は誰なんでしょうか。
①勤務する人。この場合、他の人の勤務体制はあまり関心がない(ペアを組む人が誰かは少し気になるかも)ので、シート1で自分の行を横に見渡すと思います。
②この勤務体制の職場の管理職(派遣先かも)。ある特定の日に誰が勤務するかはあまり興味がないと思いますので、シート1でも構わない。
③今日は誰が勤務日かなと思う人。今日は興味があっても明日や機能には興味ありませんので。「本日の勤務体制」という黒板(早出・日勤・夜勤位の表)に、毎日シート1を見て名前ラベルをペタっと張るくらいでいい。
少し強引ですが、不要な作業を辞めることが一番の事務改善です。
参考までに。
わたしの才能無い文章にご回答いただきありがとうございます。
誰が見るものなのか?従業員に決まってます。
不要な作業は辞めることが一番とは至極ごもっともでございますが、私なりにエクセルでの作業効率を高めようと質問をさせて戴きました。Excel以外に何か良い方法がありますか?とは質問していません。
今後教えて!gooに質問をする機会がある時は回答していただく方にもっとわかりやすい内容にするよう気をつけたいと思います。
ありがとうございました
No.4
- 回答日時:
いつもfujillinさんには、感心してしまいます。
簡易にできて、素晴らしいです。
この方法は falseやtrueを積極的に活用するので、私などにはなかなか思いつかず、たいていは作業領域をたくさん使ってやるか、マクロでこしこしやろうとしてしまいます。
今回も業領域をたくさん使ってやりましたが、その方法を、このサイトで示そうとすると、その方法の方が大変なので止めていました。
なお、No.3の式のままだと、夜勤が3,4人といるときに、対応出来ません。「参考までに」なので、それでもいいのかもしれませんが、質問者さんが参考を読み解いて、応用するのが大変そうです。
補足ですが、勤務の割り当て人数枠が多い場合にどこを変えるのか、添付図で示しました。
銀鱗さんが、次のように書かれています。
「それができたなら、これもできるだろ?」
と別の作業をやらされますよ。
Excelで何か作るのか仕事なら、それはそれで良いのですが、
本来の仕事でないなら断るのもアリです。
私は、次の作業をやらされるはめに陥っても、良いのではないかと思っています。「本来の仕事」という枠で自分の殻を作って手を出さないよりは、いろいろと試し、失敗も、苦労もしても、何かにチャレンジしたり、知ったりすることは人生を豊かにしてくれると思います。 ただただ質問サイトで回答をもらってコピーしているだけの人もいたりするので、それは困りものですが、この方は、そうではなさそうです。
ただ、今回のは、理解が、、、
これの結果を、少々改変するとか、これもできるだろ?への対応の中には、やれることがありそうに思います。
No.3
- 回答日時:
こんにちは
>なかなかうまくいきません。
できないことは無いと思いますけれど、ご質問の状態だとすぐに破綻するのが目に見えるような気がします。
とは言え、批判だけしていても回答にはならないので・・・
・Sheet2のセル位置が不明ですけれど、日付欄はSheet1と同様で、
B9:B14に「夜勤」等の文字があるものと仮定しました。
・ご質問文にご提示以外の内容に関しては不明なので対応していません
(質問者様には当たり前のことでも、回答者には不明ですので)
以下、ご参考までに。
添付図では、Sheet2のD9セルに
=IFERROR(INDEX(Sheet1!$B:$B,AGGREGATE(15,6,ROW(D$9:D$24)/(Sheet1!D$9:D$24=IF($B9="","$",IF(LEFT($B9,1)="夜","当",LEFT($B9,1)))),MOD(ROW(A2),2)+1))&"","")
の関数式を入力し、右方、下方にフィルコピーしてあります。
No.2
- 回答日時:
素人の考えです。
すいません。勤務時間と名前はまず手書きですよね。
手書きしたら、その2列をコピーしてどこかに貼り付けましょう。
そして、その2行を並べ替えます。
勤務時間に合わせて名前が並びますよね。
コピーして貼り付けましょう。
ただ、一日ごとなしなければならないけどね。
間違いは、減るかなというレベルですけどね。
No.1
- 回答日時:
一つずつ手作業で書き込んだ方が早いと思います。
ここで数式やマクロを示しても、その内容を理解できず仕様が変わった時に自力で対応できなくなりますからね。
それに、
「それができたなら、これもできるだろ?」
と別の作業をやらされますよ。
Excelで何か作るのか仕事なら、それはそれで良いのですが、
本来の仕事でないなら断るのもアリです。
・・・
書き写すときにSheet1の日付の列を記号順に並べ替えて、その結果の名前の列をコピーしてSheet2へ貼り付ければ良いでしょう。
そして次の日付の列でも同じことを繰り返す。
貼り付け終わったら並べ替えを解除するのを忘れないようにね。
あとはSheet2の項目を順に並べ替えるだけです。
この時、各項目の人数が最大2人になるなら、人数が足りなければ名前の欄にダミーのセルを用意してそこに足りない記号を入れておきましょう。
21 22 23
加藤 当 明 公
伊東 当 明 公
山田 早 公 当
佐藤 早 当 明
井上 公 当 明
ー 公 公 当 ←こんな感じに追加。
ー 明 早 早 ←こんな感じに追加。
ー 明 早 早 ←こんな感じに追加。
21日の列を昇順で並べ替えると以下のようになるので、名前の範囲をコピーしてSheet2の該当箇所へ貼り付け。
┏━この日付の列を並べ替え
21 22 23
ー 明 早 早
ー 明 早 早
井上 公 当 明
ー 公 公 当
加藤 当 明 公
伊東 当 明 公
山田 早 公 当
佐藤 早 当 明
┗━この名前の範囲をコピー
同じことを22日、23日にも行う。
Sheet2には
21 22 23
明 - 加藤 佐藤
明 - 伊東 井上
公 井上 山田 加藤
公 - ー 伊東
当 加藤 佐藤 山田
当 伊東 井上 ー
早 山田 ー ー
早 佐藤 ー ー
の順に名前が並ぶので、あとは行を入れ替えるだけです。
21 22 23
夜勤 加藤 佐藤 山田
夜勤 伊東 井上
早出 山田
早出 佐藤
公休 井上 山田 加藤
公休 伊東
明け 加藤 佐藤
明け 伊東 井上
そして「-」を削除すれば終わり。(置換で一気に消せます)
多少手を加えたSheet1も戻すことを忘れないようにしましょう。
・・・
手作業ですが、間違えることなく、しかも簡単に写し取ることができますよ。
ぶっちゃけこういったやり方を思いつかない限り、数式やマクロは作れません。
なぜなら、こういった手順を再現する数式やマクロを作るからです。
ですので「まずは手作業で横着できる方法」を学ぶことから始めましょう。
・・・余談・・・
教えて!gooの投稿では、
・連続した半角スペースは1つの半角スペースに置き換えらる。
・行頭の半角スペースは削除される。
・文頭の全角スペースは削除される。
を念頭に入れて表を書くとイメージがずれることはありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Python pandasについての質問です。 日付 名前 ◯月◯日 佐藤 ・ 伊藤 ・ 山田 ・ 2 2022/06/13 17:16
- Excel(エクセル) Excelについて 7 2023/03/12 17:01
- Excel(エクセル) 『シフト表自動化の作成について』 1 2022/06/02 00:45
- 政治 要するに、細田衆院議長の思想は、私利私欲の為なら、法律を曲げても構わないと言う思想ですよね? 1 2022/04/17 05:30
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- バラエティ・お笑い カラオケバトルの次の出演者の中で歌唱力も魂のこもりようも表現力も抜群と思う人を上位から 1 2022/05/04 14:04
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) Excelについて 4 2023/03/02 09:24
- 野球 高校野球の話 1 2022/08/18 09:54
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルのセルでシフト表を作っているのですが、それを別のシートに反映させたいのですが、どのようにすれ
Excel(エクセル)
-
シフト管理、月間のシフト表を別シートで日ごとの時間別で出勤者の名前を表示したい
Excel(エクセル)
-
エクセルで、勤務表から 日付別に勤務者と勤務形態を抽出して、別シートに抽出したい
Excel(エクセル)
-
-
4
作業別のシフト表から職員別のシフト表へ反映させたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データチェックを行うエクセル...
-
再質問です。マクロの修正箇所...
-
エクセルの数式バーのフォント...
-
エクセルで「ページレイアウト...
-
2列に入っているデータを1列...
-
【ExcelVBA】名前を付けて保存→...
-
エクセルでファイルの最終更新...
-
Excel VBAで全ての矢印を赤色に...
-
数字入力後他の文字等が表示さ...
-
【ExcelVBA】ダブルクォーテー...
-
エクセル関数を使って
-
エクセルで 自動的に◯や数字を...
-
Excelについて
-
【Excel】別シートから条件に合...
-
【マクロ】VLOOKUPにて参照元に...
-
エクセルの問題です。絶対値の...
-
エクセルのセルに同じ大きさの...
-
エクセルをエクセレントに究める
-
Excel 小さくなったスクロール...
-
エクセルのツールバーから数値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報