• ベストアンサー

エクセル シフト表 6連続勤務は"fault"

Excel 2003です。 エクセルでシフト表を作ろうと思います。 A列2行目から10行目迄に氏名を入力 1行目のB列からAF列までに日付(1日から31日迄)が入力されています。 升目に休日の場合は空白、出勤の場合、2種類の出勤パターンで”早”または”遅”を入力していきます。 AG列の各行に確認の計算式で、 6以上の連続勤務がある場合は”fault”そうでない場合は”true”となるような 確認の式を作りたいのです。 また別の式で、”遅”の翌日に”早”がきた場合”fault”になるような式はできますでしょうか。 2点 教えてください。 どうぞ宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! ご希望の方法とは違いますが・・・ 一つの案として、条件付書式を使って質問の条件の場合は入力時にセルの色を赤くする方法はどうでしょうか? C2~AF10を範囲指定 → メニュー → 書式 → 条件付書式 → 「数式が」を選択 → 数式欄に =AND(B2="遅",C2="早") として 書式 → パターンで「赤」(←好みの色でOK)を選択し、OK 次にG6~AF10を範囲指定 → 条件付書式 → 条件を追加 → 「数式が」 → 数式欄に =COUNTA(B2:G2)=6 として同様に好みの色を選択 これで入力した時点でそのセルに色がつくと思います。 以上、参考になれば良いのですが 的外れならごめんなさいね。m(__)m

yoshi0518
質問者

お礼

tom04さん 御回答有り難うございます。 お礼が大変遅くなり失礼しました。 これは目から鱗の解凍でした。 とても分かり易くて便利ですね。 全く予想していなかったご回答でしたが、 とても便利なのでこちらを採用させていただきました。 大変参考になりました。 有り難うございました。

その他の回答 (4)

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.5

No.1の回答の、後者の方は逆ではないかと。 ("遅"の翌日に"早"が来た時にTRUEを返す式になっている) =(SUMPRODUCT((B2:AE2="遅")*(C2:AF2="早"))=0) とすべきでは。

yoshi0518
質問者

お礼

don9don9さん ご丁寧に有り難うございます。 参考になりました。 有り難うございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! たびたびごめんなさい。 前回の投稿で文章に誤りがありました。 >次にG6~AF10を範囲指定・・・ の部分を >次にG2~AF10を範囲指定・・・ に訂正してくださ。 どうも失礼しました。m(__)m

yoshi0518
質問者

お礼

tom04さん ご丁寧にありがとうございました。

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

条件が前後関係にかかわる条件で(連続といった条件は)関数では難しいと思う。 例として、1行だけ、第2行目だけを考える。B列から右にデータがあり、第32列までの各列のセルの値は 早 遅 空白 のどれかとする。 エクセルは、データのあるセルに(判定のために)関数式を入れることは出来ないのは当然のこと。。だから別の離れた行以下に関数式を入れることになる。 20人未満の従業員がいる場合を考えて、例えば第21行目を注目して、そこの行の列の各セルについて 6以上の連続を問題にするので、F列までは(B-Fで5列)は6連続は無いから、G20セルに =IF(COUNTIF(B2:G2,"早")+COUNTIF(B2:G2,"遅")=6,"x","")   (Faultは特殊な言葉なのでXにした、OKはTrueより空白の方が、Xだけが目立つのでそうする。) と入れて式を第32列まで右方向に複写。 これを下方向にも従業員数の行分、全列式を複写。 月初の1日からこのチェックをするなら、前月5日前からのデータが必要だが、その点質問には何も書かず、不完全だろう。 そこはどうなるのか考えてみて。別表になっていたりすると面倒。 ーーーー 上記方法は、自信はないが、質問者の方でチェックし不都合な場合の例が起こることが判ったら、無視してください。 === 本心はむしろこの程度の課題になると、VBAででもやらないと関数の組み合わせなどでは、難しいと思ったが、関数での思い付きの案を1つ挙げてみる。

yoshi0518
質問者

お礼

imogashi さん。 いつも丁寧な御回答有り難うございます。 お礼が遅くなり失礼しました。 思いの外難しかったので、自分の中で理解するのに 時間をかけてしまいました。 大変参考になりました。 有り難うございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>A列…に氏名…B列からAF列までに日付(1日から31日迄) 前者は =MAX(COLUMN(A2:AF2)-LOOKUP(COLUMN(A2:AF2),(IF((COLUMN(A2:AF2)=1)+(A2:AF2=""),COLUMN(A2:AF2)))))<6 をコントロールキーとシフトキーを押しながらEnterで入力 後者は =(SUMPRODUCT((B2:AE2="遅")*(C2:AF2="早"))>0) をふつーにEnterで入力 #言わずもがなですが今の表では「月またぎで連続勤務」を数える方法がありません。  上述式は「1日から」及び「31日まで」の範囲で連続日数を計算しています。  先月末に遅で終え,今月アタマに早で始まったケースも同じです。

yoshi0518
質問者

お礼

keithinさん 御回答有り難うございます。 お礼が大変遅くなり失礼しました。 思いの外難しかったので、自分の中で納得するのに 時間をかけてしまいました。 columnやsumproductなど普段余り使わなかった ので勉強になりました。 大変参考になりました。 有り難うございました。

関連するQ&A

  • エクセルで勤務シフト作成教えてください。

    画像を添付していますが、見えにくいかもしれないです。 プルダウンリストで10項目ほど作成し(早、遅、夜、ラ、有1、有2など)、セルB7からセルB30までそれぞれの氏名を入れセルC6からセルAG6まで日付を入力。セルAH7からセルAH30までそれぞれの合計時間を出したいのですが、計算式とプルダウンリストのたとえば早に8時間、遅に6時間と関連付けて、一人一人の合計時間を求めたいです。Sheetはすべてで1枚にしたいので、シフトの表の片隅に早 8:00、遅 6:00、夜 6:00など縦に早、遅、夜その横縦に8:00、6:00、6:00と表を作っています。休みは空白にしています。 どのようにすればいいのか教えてください。お願いいたします。

  • エクセルの関数について2

    エクセルに詳しくないので関数に強い方宜しくお願いいたします。 1列目の上から順に「休」・「出」・「早」・「出」・「休」・「(空白セル)」・「遅」と入力してあったら「休」と「(空白セル)」をカウントしないでそれ以外をカウントして「出」・「早」・「出」・「休」・「遅」なので「4」と表示されるような関数はあるでしょうか?

  • EXCELで出退勤務シフト表を作っているのですが、、、

    (^^;)行き詰ってしまい、困り果ててます。 EXCELで出退勤務シフト表を作っているのですが、、、 日付と個人名を選択し、出勤時間・退勤時間・休憩時間を入力すると右側の表に反映するように設定してますが、上手くいきません。 その右側の表のAさんの出勤時間のセルの式ですが、 =IF($M$70=$D36,VLOOKUP$A4,$M$71:$V$113,2,FALSE)," ") =if(日付が一致したら、個人名と出退勤時間と休憩時間を入力した一覧から、2行目の出勤時間の行を入力、それ以外は、スペースを入力) というつもりで組みました。 表示はされますが、 ・日付を変えると消えてしまう!という問題 退勤時間の方も ・式を退勤時間の3行目が表示されないという問題 勤務時間は更に、 ・退勤時間-出勤時間=勤務時間が#####となってしまうという問題 となっていて、どうしたらいいのか行き詰っています。 良い方法がありましたら、是非、教えてください。 本当に本当にお願いします。 また、こういう問題を実際に教えて頂ける教室や 場所などご存知でしたら、是非、教えてください。 どうぞよろしくお願いします。

  • エクセル2003の、抽出について

    勤務表から、その日の勤務者の、勤務形態別の氏名を抽出したいと思っています。 といいますのも、A列に上から氏名があり、1行目に日付が入った勤務表があります。 そこに、それぞれ「早」、「日」、「遅」というように、その日の勤務形態が入力されています。 そこで、例えばC列を選択すると、「早」と記載のあるA列の氏名がE列に、 「日」と記載のある氏名がF列に、抽出されるといったことは可能でしょうか? マクロを使ってもかまいませんので、よろしくお願い申し上げます。

  • 連続勤務のカウント方法について

    質問させていただきます。 エクセルにて勤務表を作成しているのですが、 7日以上の連続勤務になったときに何か表示できないかと思っています。 1ヶ月を通して7日以上の連続勤務があった場合に表示か、 連続7日目が入力された時点で表示か、どちらでもかまいませんが、 何か方法はありますでしょうか? 例) 早│遅│休│日│遅│早│日│早│日│早│休│・・・・・7日連続勤務有

  • 交代制勤務シフト表から、給食数の一覧表を作りたいです

    月初めに各部署から、エクセルソフトを使った勤務表が来ます。それを元に給食の数を一覧表にしたいのです。たとえば      早(早番)なら 朝と昼に○      日(日勤)なら 昼のみに○      遅(遅番)なら 昼と夕に○      夜(夜勤)なら 夕のみに○      明(明け晩)なら 朝のみに○ といった具合です。前任者はIFを使って、コピーで貼り付けしていたようですが、自分ではよくわかりませんでした。どうか教えてください。よろしくお願いします。   

  • エクセル 表検索について

    次のような表で検索するための関数式を教えてください。 行の見出しに、2,5,7,8,9という数字があり、 列の見出しに、10、20,30,40,50という数字があり 表の中に各行、列に対応した数字を埋めている表があり ます。 こんな感じです。       2   5   7   8   9 10    1.1  1.2  1.3   1.4  1.5 20    1.2  1.3  1.4   1.5  1.6 30    1.3  1.4  1.5   1.6  1.7 40    1.4  1.5  1.6   1.7  1.8 50    1.5  1.6  1.7   1.8  1.9 行が2、列が30だったら、1.3と表示されるようにしたいです。 よろしくお願いします。

  • Excelでシフト表作成‥

    Excelで来年の基本シフト表(縦軸:日付・横軸:担当者)を作成しています。 月間労働時間177h、休日8日、1日のシフトパターン(A:7.45h・B:7.20h)の月で、 出勤時刻はA・B共に6:00~9:00の30分単位、 退勤時刻はシフトパターンと出勤時刻によって異なります。 シフトパターン列・出勤時刻列は、ドロップダウンリストからそれぞれ選択できるよう設定してあり、 できるだけ、担当者に入力の手間をかけないよう、 「シフトパターンと出勤時刻を選択すると、  退勤時刻列にシフトパターンと出勤時刻に応じた退勤時刻が設定される」 というようなことがしたいのですが、関数(数式)の設定で出来ますでしょうか? Excel特に関数や数式設定が苦手なので、何方かご教示いただけましたら幸いです。 バージョンはExcel2003です。よろしくお願いいたします。。

  • エクセルの関数教えてください。

    勤務表をエクセルで作成しています。 一日の勤務が 早、早1、日、遅、夜、明、休の表示になっていて 勤務表を見ながら昼食の注文をしています。 昼食を食べる人は早、早1、日、遅の勤務者だけです。 一日、早、早1、日、遅が何人いるかカウントしたいのですが教えていただけないでしょうか。

  • エクセルで勤務表・・

    勤務表作成について教えてください 浅海も質問させていただいたのですが・・ たとえば A1.A2.A3と従業員の氏名を B1.B2.B3とB列には 出勤時間を C列には退社時間を入れた表をつくり D列から右の列には 勤務シフト(出勤から退社までの時間帯)を帯状に作成したいのですが・・1日の会社の営業を朝9時から夜10時までとして シフト表を簡単に記入できたらと思っています。できれば 休憩時間も D列に記載して自動入力できれば最高なのですが  それ以上の機能は もとめませません   作成方法教えていただけませんか? グラフのテ入力しかありませんか? よろしくお願いします

専門家に質問してみよう