質問: エクセル関数/連続した○◎●をカウントする関数 エクセル2007で20名のシフトを作成しています。 会社のルールとして6連続勤務は禁止となっているのですが、不定休のため実際に作成してみるとどうしても6連勤になってしまう箇所がままあり、作成する際にすぐにこれに気づけないかと悩んでいます。 シフト作成時には、 a店へ出勤→○ b店へ出勤→◎ 有休→● 休日→× という記号を利用しており、この記号を変更する事は出来ません。 また、有休は出勤とカウントするため、有休前後に2連勤と3連勤があったりすると、6連勤になってしまいます。 (図では6日が有休となっていますが、4日~9日までの6連勤となってしまっています) こういったものにすぐ気づけるよう、○、◎、●が合計で連続して6個続いた場合、セルの色を変更してすぐに気づけるようにしたいのです。 自分で調べてみたところ下記の関数を見つけました。 =counta(indirect("rc[-3]:rc",false))=0 この関数を条件付書式で使用すると、4つ連続した空白があった場合にセルの色を変更してくれるとのことなのですが、この関数を改良して希望を満たす関数を作成する事ができないか教えてください。 よろしくお願い致します。
回答: このケースでは,取り立ててindirect関数を組み込む必要はありません。 また,一工夫としてセルに記号が入ってから検査を開始するよう仕込んでおく必要があります。 というワケで,「6日分の実績が溜まった」l8で条件付き書式を開始,数式として =and(l8<>"",countif(g8:l8,"×")=0) といった具合に設定することになります。 l8をコピー,右に下に貼り付けて条件付き書式を展開します。 #言わずもがなですが,先月分の実績が記録されていないので1日~5日にかけては検査が出来ません。 キチンと管理するには,g列の左に先月末一週間分の履歴を記録として残しておくような追加の手当てが必要です。