
No.6ベストアンサー
- 回答日時:
こんにちは
ハーフ勤務のパターンは、ある日に休むのと同じ日に出勤との2通りあると思います。
それに、通常出勤を加えると全部で3パターンになるのでしょうか?
平日の数を数えて偶数か奇数かで判断できそうに思いますが、いずれにしろ、実用化するには祝日が入ったらどうするかとか、GWや正月休み等も考慮する必要が出てくるのではないかと想像しますので、最終的にはユーザ定義関数やマクロを利用することになりそうな気がします。
ともあれ、ご質問の範囲限定であれば条件付き書式でも対応できそうですので・・・
添付図で、
・2行目は日付がシリアル値で入っています。
・3行目はC3が =WEEKDAY(C2)の要領で曜日表示しています。
・土日は条件付き書式で色を変えてあります。
・表内の条件付き書式に以下を追加。C4セルの条件式として
=MOD(COUNTIFS($C$3:C$3,"<>1",$C$3:C$3,"<>7"),2)+1=$A4
という条件でグレー表示するように設定します。
この書式の、優先順位は「土日の設定」よりも低くしておきます。
※ 個人の勤務パターンを表す項目(A列)を作成しています。
数値(1または2)がハーフ勤務、未入力は通常勤務です
※ 実際には、別に氏名と勤務形態等を示すマスターがあって、そちらを参照するようなことになるのかも知れませんね。

回答ありがとうございますm(_ _)m
また、画像までつけていただき、ありがとうございます。とてもわかりやすかったです。
やはり祝日も除くと考えると難しいですよね...
No.11
- 回答日時:
NETWORKDAYS関数を使って初回出勤日から暦日までの営業日を求めて、偶数の場合、条件付き書式で塗りつぶし(休み)とします。
条件式は、こんな感じです。
=ISEVEN(NETWORKDAYS(初回出勤日,歴日,祝日の範囲))
ちなみに、土日祝については、別途、条件付き書式で塗りつぶされているものとします(上記の休みより優先的に)。
No.8
- 回答日時:
ANo6です。
>やはり祝日も除くと考えると難しいですよね...
祝日の情報を盛り込めれば、No6と同様の方法で算出することは可能です。
例えば、No6の添付図の3行目と4行目の間に、祝日か否かの表示がされているとか・・・(不要な場合は、その行は非表示にしておく)
祝日を表示するためには、別に祝日表を作成しておいて、それを関数等で参照する方法や、祝日の論理的な規則性を利用してプログラムで算出する方法などが考えられますが、それはそれで、今回のご質問とは関係のない内容になってしまいますので省略。
しかしながら、No6で提示した方法は(『限定』と書きましたように)表の初めから平日数を数えて偶数か奇数かで判断しているだけという、所詮、付け焼刃的な方法ですので、そのままだと、月が変わると同じ人でもパターンが逆転する可能性があるなどの欠点があります。
パターンの逆転防止だけであれば、その月の最初を偶数日と考えるか奇数日と考えるかを示すセルを一つ用意しておけば、それで済むことは済みますが・・・
とはいえ、まともに月にかかわらず継続的な使用を目標とするなら、4月からの平日数を計算することが必要になりそうです。
これを関数だけで処理しようとなるとかなり面倒になると思いますので、エクセルであればVBAを利用することになりそうな気がします。
(月ごとにシートが作成されていて、前の月のシートを参照するような工夫ができれば、No6の方法でもパターンの継続も可能ですが…)
また、まったくの想像ですが、ハーフ勤務のAさんとBさんがある日だけ都合で入れ替わる(代わりに出勤)ようなことは発生しないのでしょうか?
そのような場合にも対応できるようになさりたいのであれば、単純な条件付き書式では、難しいのではないかと想像します。
(これだけに限れば、表の作り方を工夫し、うまくルールを作成すれば可能そうですが…)
実際の使用を想像すると、いろいろな可能性がありそうに思いますが、それらにある程度までは対処できるようにしておかないと、せっかく作成しても『使えない道具』になりかねませんので・・・
回答ありがとうございますm(_ _)m
祝日の一覧はすでに作ってあるので、それで試してみます。
VBAは絶賛勉強中でして、まだ簡単なボタンくらいしか作れない私には難易度が高いです(^^;
シートは係ごとで分けていて複数になっているので、一ヶ月ごとにファイルで分ける予定です。
代わりに出勤というのは発生しないです。
とりあえず、土日祝に色をつけてあるので、お休みの日は各個人で色付けしてもらうという感じで使用していこうかと思っています。
No.2
- 回答日時:
例えば、先程の例で言うとE列に隠し列を作るとします。
0=出勤、1=休日 とフラグを決めます。
E1(見出し行)に、前月最後の日の出勤フラグを入れます。
※平日の最終日が出勤だった場合「0」休日だった場合「1」
E2=if(B2="土",1,if(B2="日",1,if(E1=1,0,1)))
E3=if(B3="土",1,if(B3="日",1,if(B2="日",if(E1=1,0,1),if(E2=1,0,1))))
E4=if(B4="土",1,if(B4="日",1,if(B3="日",if(E1=1,0,1),if(E3=1,0,1))))
後は、E4を下の行にコピーすると、休日としたい日が「1」になります。
あとは条件付き書式で、
数式に「=$E2=1」で書式設定をすれば出来るかと。
祝日が絡むと微妙ですが^^;
E行をフラグときめておけば、フラグをいじるだけで色が変わるかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに写真が貼れない(フ...
-
エクセルのライセンスが分かり...
-
【マクロ】実行時エラー '424':...
-
vba テキストボックスとリフト...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
他のシートの検索
-
【マクロ】【配列】3つのシー...
-
エクセルシートの見出しの文字...
-
セルにぴったし写真を挿入
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
【マクロ】excelファイルを開く...
-
勤怠表について ABS、TEXT関数...
-
Excelに貼ったXのURLのリンク...
-
【マクロ】【画像あり】❶ブック...
-
【Officer360?Officer365?の...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報
banzaiA様
お返事遅くなってすみません。
5月の連休前の出勤日は2日のみでした。
が、気づくのが遅くて大変申し訳ないのですが、祝日があると休みの日と出勤日がずれる要するに一日置きのお休みではなく二日置きの可能性もあるということが判明しました。
他の職員さんもおそらく祝日で出勤日が変動すると思われるので、今回は土日祝日だけ色をつけてお休みの日は各自で入れてもらうことにします。
たくさんの方に回答していただき、本当にありがとうございましたm(_ _)m
知らなかった関数も知ることができて、とてもいい勉強になりました。
ベストアンサーは回答していただいた皆さんに差し上げたいのですが、そうもいかないので、画像までつけていただいたfujillin様に差し上げたいと思います。