数式設定例
勤務 回数 3 勤務リスト *
開始日
2012/3/1         1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
No 氏名        
1 松本 武士                                  
2 松本 乙女                                  
3 佐藤 純                                  
4 鈴木 俊夫                                  
5 藤田 美穂                                  
6 井上 真紀                                  
7 石田 純子                                  
8 藤田                                   
9 石垣                                   
10                                    
11 山岡  寛子                                   
12 寺村  千恵                                  
13 後藤  由佳                                  
14 城後  照代                                  
15 須貝 公男                                  
                                                                                 
テキスト ボックス: 5連続の場合を考える。
発生するパターンは、右図のように、白のセルを当日とすると5パターン

すなわち、現在のセル位置から
 1.左へ−4の位置から右方向に5つのセル内容が同じ
 2.左へ−3の位置から右方向に5つのセル内容が同じ
 3.左へ−2の位置から右方向に5つのセル内容が同じ
 4.左へ−1の位置から右方向に5つのセル内容が同じ
 5.左へ−0の位置から右方向に5つのセル内容が同じ

よって、条件式は以下のようになる。
指定勤務回数には"回"という名前が付けてある
 (書式内の文字数制限255文字?のために極力使用文字数を少なくする)

 条件1. R13のセルを現在位置として条件を数式にすると、

    COUNTIF(OFFSET(R13,,1-回,1,回),R13)=回

  となる。
  OFFSET関数で列位置を 1−回 移動、列幅を 回 として、
  その中をCOUNTIF関数で R13 と同じ値の個数を計算する。
  計算結果が 回 と同じであれば 1. の条件を満たす。
-4 -3 -2 -1 0 1 2 3 4
         
         
         
         
         
       
テキスト ボックス: 以下、1.〜5.のどれかのの条件を満たせばよいのであるから

   OR(
    COUNTIF(OFFSET(R13,,1-回,1,回),R13)=回,
    COUNTIF(OFFSET(R13,,2-回,1,回),R13)=回,
    COUNTIF(OFFSET(R13,,3-回,1,回),R13)=回,
    COUNTIF(OFFSET(R13,,4-回,1,回),R13)=回,
    COUNTIF(OFFSET(R13,,5-回,1,回),R13)=回,
   )

となる。

ただし、指定連続回数が3回の場合は、4,5番目は不要であり誤動作の原因となる。
よって、指定回数以上の場合に条件式を無効にする必要がある。

指定回数以上時にはCOUNTIFが0を返せばよいのであるから、
COUNTIFに指定回数以上時には0となる計算式を掛けてやればよい。

具体的には
   (回>=4)*COUNTIF(OFFSET(R13,,4-回,1,回),R13)=回
のようにする。
  回が4の場合は、回>=4 はTRUEとなる。エクセルではTRUE=1として扱われるため、
  回が4,5の場合は計算され、4未満の場合は0が掛けられて結果が0となる。

以上を踏まえて条件式を書き直すと

   OR(
    (回>=1)*COUNTIF(OFFSET(R13,,1-回,1,回),R13)=回,
    (回>=2)*COUNTIF(OFFSET(R13,,2-回,1,回),R13)=回,
    (回>=3)*COUNTIF(OFFSET(R13,,3-回,1,回),R13)=回,
    (回>=4)*COUNTIF(OFFSET(R13,,4-回,1,回),R13)=回,
    (回>=5)*COUNTIF(OFFSET(R13,,5-回,1,回),R13)=回,
   )
テキスト ボックス: 後は、指定勤務とワイルドカードへの対応を追加する。

 「勤務が"*" もしくは 勤務が選択位置(R13)と一致」の条件と上記条件との論理積なので

  =AND(
   OR(勤務="*",勤務=R13),OR( 
    (回>=1)*COUNTIF(OFFSET(R13,,1-回,1,回),R13)=回, 
    (回>=2)*COUNTIF(OFFSET(R13,,2-回,1,回),R13)=回, 
    (回>=3)*COUNTIF(OFFSET(R13,,3-回,1,回),R13)=回, 
    (回>=4)*COUNTIF(OFFSET(R13,,4-回,1,回),R13)=回, 
    (回>=5)*COUNTIF(OFFSET(R13,,5-回,1,回),R13)=回
    )
   )

 となる。
 以降、6,7連続条件でも同じパターンで追加すればよい(文字数制限が許す限り)
角丸四角形: 作成上の注意点

 この方式では、月初めでは最大地の場合、黄色のセルの部分まで判定対象となる。
 同じく、月の終わりでも、黄色の部分が判定対象に入ってします。
 この部分が判定対象になっても構わないように表を工夫しておく必要がある。

 具体的には、シフト表の日付列を前後4列余分に確保しておき、非表示にしておけば良いだろう。

 条件式の中で判断も出来るが、かなり式が長くなってしまう。