応用例
下記の表は、シフト勤務を表しています。
○:日勤 △:早出 ★:遅出
ここで、★の次の日は、△を禁止したいと思います。(遅出の翌日の早出)
★、△が連続する場合は"×"を表示するようにしてください。
探す文字は、★と△の連続ですが、間に休みがある場合は対象となりません。
よって、日々の勤務文字を単に連結するのではなく、区切り文字として","を使用します。
(区切り文字は空白以外何でも可。ここでは分り易いように全角カンマ)
連結した文字から"★,△"の文字を探し、在れば「×」を表示。
検索関数は、COUNTIF,SEARCH いずれでも可。それぞれ長所、短所あり
COUNTIF | SEARCH | |
長所 | 個数で返るので、エラー処理は特に必要なし | 見つかった文字位置まで調べられる |
短所 | 文字列全体を探すので、「含む」場合は、ワイルドカードを使用しなければならない。 上図では、検索する文字列 $L$59 の前後に"*"を連結して、「含む」の形にしている。 |
無い場合は、#VALUEのエラーが返るので、そのエラー処理をする必要がある。戻り値を表示する場合、関数を2回使うことになる。(EXCEL2007以上ではIFERROR関数を使用して簡素に記述可) 上図ではSEARCH関数の戻り値ではなく"×"を表示しているので、関数は1個で済んでいる。 |