特定の文字列の重複や入力忘れが無いか確認をするためにエクセル関数を使用してみました。
サンプルでは固定されたメンバーを、シートの水色部分に全て入力しようとします。メンバーはそれぞれの日にちに最低1回入れて、もし重複や入力忘れがあった場合にエラーが表示されるシートを作成する方法です。
プログラムで作成した方が正直言って簡単に管理できますが、エクセルでも工夫すれば実装できます。登録する項目数が多いときはセルに入力する条件を分割すると楽です。
指定した文字列が何回登場したのか調べて出現回数を制限
サンプルのようにそれぞれの日にちでメンバーが1回入力されたか確認するために、次式を使います。
セルは探索したい範囲を指定します。文字列は直接検索したい言葉入力できるようにダブルクォーテーション「””」がありますが、もしセルを参照して使う場合は「””」は消して下さい。
重複を避けて1回のみ常にあるか確認する場合、出現回数は1となるため「出現回数+1」に「2」と入力します。探索するワードが1種類の場合は上記の式でOKです。2種類以上の場合はIFの出力である「 ”OK”, ”NG”」を「”1″,”0″」と数値にすると利便性が増します。
解説
各関数について、式で評価する順にみていきます。
COUNTIF(セル,”文字列”)
COUNTIF関数は指定した「セル」の範囲内に「文字列」が何回あるか数えます。完全に一致したものを数えるため、F6のように同一セルに複数の情報が入力されているとカウントされません。
指定した範囲に「文字列」を含むセルをカウントしたい場合、ワイルドカードを用いて「*文字列*」と入力します。(セルを参照する場合、あらかじめワイルドカードを含めて入力します。)
AND(条件1,条件2,…)
AND関数は論理関数であり、カッコ内に書いた複数の条件すべてを満たす場合を真(TRUE)とします。入力漏れ(0回)と重複(2回)を認めないようにするためには「0<回数<2」を満たす必要があるので、条件を2個に分けて書きます。
IF(条件, 真の場合,偽の場合)
IF関数は、条件を満たす場合は「真の場合」を出力、それ以外は「偽の場合」となります。ここではAND内の条件を満たしたとき、「OK(1)」を出力させます。
具体的な使用方法
「さる」「きじ」「いぬ」が毎日どこかに1回登場したか調べていく方法です。「山」「川」「島」のいずれかに最低1回登場し、重複がないか確認するシステムを作ります。
まず、シートのどこかにメンバー全員を書きます。(見本では左にあるB列の「メンバー」のこと。)次に日付の右側にメンバーの名前を一人ずつ列挙します(L~N列)。
ワイルドカードを使用したセルを参照するようにし、メンバーずつ、日付ずつに重複や欠落があるか確認します。例えばL4セルの場合は以下の式になります。
それぞれのセルで結果を出力して、評価対象にすべてに問題が無かったかどうかIF関数を用いて調べます。それぞれの結果を「1,0」で出力したので積が1(エラーなし)であるか、0(エラーを含む)なのかで行えます。
結果を条件付き書式設定で色分けして表示
「NG」や「0」などエラーがあった場所を目立つようにすると原因を探しやすくなります。
色付けしたい範囲を選択したあと「条件付き書式」を選択し「セルの強調表示ルール」、「文字列」と順に選択します。
文字列の内容はエラーとして吐き出したものと揃えます。表示方法は好みで選んで下さい。
以上、特定の組み合わせの文字をすべてのセルに入れる方法についての解説でした。