• 締切済み

続・勤務表

質問を締め切ってしまったのでもう一度・・・ 月を変えると曜日が変わる様にしているのですが、 同じく月を変えると、シフトが変わる様にしたいのですが 解かりません。 ご解答いただければ大変有り難いです。 シフトそれぞれ、BBAAとなっています。 現在の各セルの数式の表示は C7セルの所では、=DATE(A5,A8,1) C8セルの所では =IF(MONTH(C7)>$A$8,"",C7) C9セルの所では =IF(C8="","",CHOOSE(WEEKDAY(C8,1),"日","月","火","水","木","金","土")) と、それぞれ数式が表示されてます。 お時間がある時にでもご解答頂けると幸いです。 宜しくお願い致します。 。

noname#130812
noname#130812

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

今回もまた質問するなと思っていた。 下記をよく読んで質問の内容に補足してみて。 質問前半に書いてあることなど、日付関連のことで、こんなの回答者には常識で、本質問の説明の足しにならない。 ーー 前回(前前回のこと)の質問のときも同じだが、配置について、AB休のサイクルで「どういうルール でやりたいのか」を書かず、表だけコピペして、意味内容は推測せよ、という 質問者として、手抜きをやっている。(3人の場合はみな同じようなルールで繰返しで、 各日において、AB休が各々1人だけに出来た。これは1ヶ月だけなら関数でできて、 回答しようとしたが、締め切り後だった。ただその際翌月はどうするのか気なっていたが) またこの質問は、質問者が考えて、色々試行の跡もなく、丸投げになっている。 ーー まず (A)ルールが書いてない (1)人ごとにBBAA休休を繰返す (2)従業員全員をみて、A,B、休みの、日ごと人数はどう考えていくのか   各人のルールを優先して、その日に何人出勤しようが、Bが何人になろうが、休みは何人になろうが良いのか? (3)個人ごとで考えて、月初1日からは、前月中のサイクルの続きとして考えたいのか また月末日1日だけでは、サイクルの何処で終わったかの情況を捕らえられないと思うので、難しいと思う。 ーーー (B)エクセルで処理する、方式が書いてない エクセルでは (1)操作(コピペなど) (2)関数式 (3)VBAプログラム (4)特別な機能(本件と関係ない例えだが、ピボットテーブルや統合といった複雑な機能=操作) (5)特別ソフト(アドイン・流通しているソフトなど) があるが、(2)の関数が念頭にあるのか? (2)は、式の複写を活用する(活用できる)ことが、それを使う、ポイントと言えるが、基本的に関数式は式が複雑になって 、質問者に理解できない式になる恐れがある。 前回質問の回答でも、式の内容を理解できず、そのままコピペしてやってみて、 うまくいきませんと、テストの採点官のように言っていないか。 回答の関数の、仕組みを理解して、自分の場合に当てはめて多少修正できる力が無ければ、質問して、 回答をもらっても、役に立たない。それで何度も質問を繰返すことになる。 また、本件はVBAでやても難しい課題と思う。 ーーー この方式をエクセルではじめたスタート月の1日の開始状態(A,B、休)で、 その後のサイクルが規制(決定)される。 その月の月末日または月末数日の状態から、当月1日(以降)のタイプを割り出したいのか。 1人について6種類の勤務状態があるから、月末においても人により6種類あり、 それを各月バラバラの月日数で割り出すのはむつかしい(式が複雑になる)と思うが。 ーーー 人間(質問者)が、月末の繰り返し情況を判断して、そこから以降休休までをコピペし、月中は「BBAA休休」の コピー貼り付け(または+ハンドルを引っ張る)をして整えるのが、普通の技量レベルの人には適当な方法でないか。 ーー 個人の勤務サイクル優先で考える場合の話で、 人手でやる場合、少し役立ちそうなヒントを挙げてみる。 ツール オプション 「ユーザー設定リスト」のタブを選択 縦に B B A A 休 休 を定義 ーー 各従業員行で スタート日(その人の1日)でBとかを入れる. そのセルで+ハンドルを出して、右方向に引っ張る。 (+を月末日まで引っ張る動作を一気にやらないと、途中列でマウスを緩めるなど、1休みしてはならない) この操作を十強引分の行で人数分する。 または 人数分を31+6日分手本として、上記操作を使って作っておいて、 その月1日(または月末の終わり状態から)のスタート状態を探してそれから月日数の列数分コピペして 新しい月の1日から右列に貼り付ける。 こういう手もある。

noname#130812
質問者

お礼

大変失礼致しました。 ご回答ありがとうございます。

回答No.2

質問履歴は非公開になっていますので、関連する質問はリンクを張るようにお願いします C8セル =DATE(A5,A8,1) D8セル =IF(C8="","",IF(DAY(C8+1)=DAY(C8)+1,C8+1,"")) 右へオートフィル セルの書式設定 - ユーザー定義 - 種類 d とすることで日付だけ表示させる C9セルは =IF(C8="","",TEXT(C8,"aaa")) H:K列にデータのもととなる表があるとする 添付図参照 C10セルに =""&INDEX($I$2:$K$9,MATCH(C$8,$H$2:$H$9,0),MATCH($A10,$I$1:$K$1,0)) 右へ下へオートフィル

noname#130812
質問者

お礼

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

  • nabe3desu
  • ベストアンサー率46% (253/550)
回答No.1

シフトを組むアルゴリズムを書いていただかないと、式だけでどうこうなるものではありませんよ。単純に”BBAA□□”(□はブランク)で連続するなら、日を6で割ったときの余りの数で判断すれば良いと思いますが、田中さんのシフトがこのアルゴリズムに合っていないので、どういうふうにシフトを組もうとされているのが、見えません。

noname#130812
質問者

お礼

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

関連するQ&A

  • 勤務シフト表の作り方

    月を変えると曜日が変わる様にしているのですが、 同じく月を変えると、シフトが変わる様にしたいのですが 解かりません。 ご解答いただければ大変有り難いです。 シフトそれぞれ、BBAAとなっています。 宜しくお願いいたします。

  • エクセル2003の表示を教えてください。

    エクセル2003の表示を教えてください。 A1セルに2010年7月1日B1セルに数式で=CHOOSE(WEEKDAY(A25,1),"日","月","火","水","木","金","土")により曜日を表示してます。C1に土日だったら〇、そうでなければスペースとなる式を教えていただけますでしょうか。 sum関数しかわからないレベルの知識しか持っておりません。 どうぞよろしくお願いいたします。

  • エクセル関数について

    エクセル関数の使用方法について教えてください。 また、ストップしてしまいました。 日付から曜日を求められるように、CHOOSE関数とWEEKDAY関数を使用して以下のとおり入力しました。 (実際のセルの表示は違うのですが、分かりやすいようにA1とB1にしました) CHOOSE(WEEKDAY(A1),"(日)","(月)","(火)","(水)","(木)","(金)","(土)") 曜日を表示したいセルはB1です。 私としては、A1に日付が入力されていない場合は、関数が入っていても、B1は空白であってほしいのです。 いろいろ調べていたら、IFERROR関数が有効?のようなのですが、ソフトが古いらしく対応しておりません。 このような場合はどのようにしたら解決できるでしょうか。 因みに、IF関数の使用を試みたのですが、うまくいきません。 詳しい方、どうか教えてください。 よろしくお願いします。

  • エクセル勤務表作成中なのですが・・・

    初めて質問します。よろしくお願いします。 エクセル2003にて勤務表を作成しているのですが、こんな事ができるものなのでしょうか?     A    B   C   1 H18年  8月  2  21   月   出勤  3  22   火   出勤  4  23   水   休み   ・   ・   ・ 32  20   日   休み シート1にこの様な表を作り、シート2の1つののセルに休みの日付を自動的に抽出したいのですがこの様なことは可能でしょうか? ちなみにA1,B1には数字のみの入力で表示形式で年月を表しています。A2には=DATE(A$1+1988,B1,21)という関数で日にちを表示、A3以降は=A2+1というようにして表示しています。曜日は=IF(A2="","",WEEKDAY(A2))という関数で表示しています。 私エクセル関数に関してはあまり詳しくありません。この表もフリーソフトで入手したものを使用しています。 よろしくお願い致します。

  • エクセルで勤務表を作りたい。

    ・セルA1からセルAE1まで1か月31日分のセルを設けております。 ・たとえば3月度の勤務表は、2月16日から3月15日で毎月15日が締めです。  A1のセルに2014/2/16と入力し、表示は日にちだけ(yyyy/mm/dd)のdのみ表示です。  よってA1のセルは16と表示されています。 ・翌日B1のセルにはA1+1、C1のセルはB1+1・・・とすると16,17,18・・・と表示されます。  3月度は2月が28日までなので、セルAB1が3月15日となります。 ・ところが、数式はセルは31日分すべてに入っているのでAC1・AD1・AE1には3月の  16・17・18まで表示されます。 ・AC1・AD1・AE1の数式を削除すると、空白になりますが、4月度は12日で終わってしまいます。  希望としては、数式は31日分のセルすべてに入れたまま15以降16,17,18は空白にしたい ・関数IF等いろいろ試みましたがうまくいきません。 ・解決方法を伝授下さいよろしくお願いいたします。

  • 勤務シフト表

    月を変えると曜日が変わる様にしているのですが、 同じく月を変えると、シフトが変わる様にしたいのですが 解かりません。 ご解答いただければ大変有り難いです。 シフトそれぞれ、BBAAとなっています。 宜しくお願いいたします。

  • Excel2007で土日祝17時以降の勤務時間表示

    タイムカードの計算をしています。 土日祝の17時以降の勤務時間のみを表示させ、最後にその時間の合計を表示させたいです。 日付と曜日のB列、C列は別シートのカレンダーから参照させており、 カレンダーシートのB4に =IF(MONTH(A4)>$D$1,"",A4) ※A4には年月日が、D1には月が入っています。 カレンダーシートの曜日は =IF(B4="","",CHOOSE(WEEKDAY(B4,1),"日","月","火","水","木","金","土")) と入力しています。 また、カレンダーシートは年月を変えると祝日や曜日が変わるようにしており、 それらの曜日や日付けで条件付き書式を設定し文字色が変わるようにしています。 祝日は「祝日」シートで各年毎に「祝日11」等と設定しています。 で、本題ですがP列の17時以降の勤務時間を土日祝のみ表示させ、 その合計時間をP34に表示させたいのです。 分かりにくいかもしれませんが、ご教授お願いいたします。

  • エクセル勤務表シフトの自動生成の作り方

    お世話になります。 エクセルで勤務表を作り、日にちと曜日の方は月の数字を入力すると自動で変わる様に出来たのですが、シフトの方が月を入力して自動で変わるやり方が分かりません。 シフトはそれぞれ、BBAAで二日休みと言う形です。 宜しくお願いいたします。

  • 勤務表作成で困ってます。

    月別、曜日別固定シフト表それぞれ何月(図:8月)入力すると自動で曜日、日付がそれぞれ自動で変更するのですが上手くいきません。異なる勤務表に日付が同じ行を見つけ、そのセルに表示させたいんですが。 index matchも使用したのですが、上手くいきません。 月別シフト表をメインに曜日別固定シフト表へ月変更してもそれに合わせて反映させることできないでしょうか?

  • エクセルで作成した勤務表を週間勤務表に抽出したい

    エクセルで作成した勤務表を元にして 週間勤務表(月~日)を作成したいのです。 現状はコピペで作業をしていますが可能であれば シートをファイルに貼り付ける事により自動計算で反映できるようにしたいと思います。 月初めは1日からですが曜日が都度変わるためそのための関数式が 分かりませんでした。 現在の勤務表は B6以降B欄には社員名 セルC3に月    C4に日    C5に曜日    C6以降はその日の勤務シフト(早、遅 等) 週間予定表は  A6以降A欄が社員名  G4が日  G5が曜日(固定)  G6以降がその社員の勤務シフト と表示したいので 19年8月の場合8/1が水曜日なので  I4に「1」  I6に「シフト」  のような表示が可能な関数式を探しております。 宜しくお願い致します。

専門家に質問してみよう