いまさら聞けないExcelの使い方講座

【Excel】COUNTIFS関数でミスを防ぐ! 重複・未入力・条件不一致をチェックする方法

重複や未入力などのミスを数式で見つけよう

目視だけでは見落としやすい表のミス

 問い合わせ履歴や申込者一覧、商品管理表など、まとまった量のデータを都度入力するような表では、同じデータを重複して入力してしまったり、必須項目をいったん空欄のまま進めてしまったりすることがありますよね。

 入力後に目視で確認しても、似た文字列が並んでいると、ミスを見落としがちです。また、入力されている値そのものは正しくても、「対応済み」なのに完了日が入力されていないといった矛盾が発生することもあります。

 このようなミスは、COUNTIFS関数を使って検出できます。条件に一致するデータの件数を数え、その結果をIF関数で判定する仕組みです。

問い合わせ対応一覧の例。重複や未入力、項目同士の矛盾が含まれています

 今回は「問い合わせ一覧」を例に、データの重複、必須項目の未入力、対応状況と完了日の不一致をチェックする数式を紹介します。

重複をチェックする

 まずは、COUNTIFS関数を使って重複データをチェックしてみましょう。COUNTIFS関数は、複数の条件をすべて満たすデータの件数を数える関数です。基本的な構文は次の通りです。

COUNTIFS関数の構文。引数[検索条件範囲]から[検索条件]に一致するデータを数えます

 重複のチェックには、COUNTIF関数が使われることが多いですが、COUNTIFS関数も、条件を1つだけ指定すればCOUNTIF関数と同じように利用できます。今回は、複数の項目の矛盾をチェックする際にもCOUNTIFS関数を利用するため、統一してCOUNTIFS関数を利用します。

 ここでは「受付番号」列に含まれる重複データに「重複」と表示させたいので、IF関数を組み合わせます。「$A$2:$A$21」は、数式を下方向へコピーしても範囲がずれないように絶対参照にしています。

=IF(COUNTIFS($A$2:$A$21,A2)>1,"重複","")

 セルA2の値が、セルA2~A21のセル範囲にいくつ含まれているかをCOUNTIFS関数で数えて、その結果が「1」より大きいかどうかをIF関数で判定します。COUNTIFS関数の結果が「1」であれば重複なし、「2」以上であれば同じ値があるため、「重複」と表示します。重複していない場合は、何も表示しません。

セルH2に「=IF(COUNTIFS($A$2:$A$21,A2)>1,"重複","")」と入力します(①)
数式をコピーすると、重複がある行に「重複」と表示されます

 重複しているすべての行に「重複」と表示されるため、どちらのデータが正しいかは、受付日や問い合わせ内容などを確認して判断しましょう。

必須項目の未入力をまとめてチェックする

 「担当者」「問い合わせ種別」「対応状況」が必須入力の項目だとします。空欄を検索条件として指定する場合は、数式内に「""」と記述します。指定したセル範囲に空欄のセルが1つ以上あれば、未入力のセルがあるため、以下のような数式で判定できます。

=IF(COUNTIFS(D2:F2,"")>0,"未入力","")

セルI2に「=IF(COUNTIFS(D2:F2,"")>0,"未入力","")」と入力します(②)
数式をコピーすると、「担当者」「問い合わせ種別」「対応状況」のいずれかが空白の行に「未入力」と表示されます

 なお、連続しない必須項目の場合は、IF関数とOR関数を組み合わせると簡潔に判定できます。例えば、「受付日」「担当者」「対応状況」の未入力をチェックするなら、以下のような数式になります。

=IF(OR(B2="",D2="",F2=""),"未入力","")

項目同士の矛盾をチェックする

 表のミスは、重複や空欄だけとは限りません。入力されている値を組み合わせると、内容に矛盾が見つかることもあります。ここでは、「対応状況」列が「対応済み」であるにもかかわらず、「完了日」列が空欄になっている行をチェックします。

 数式は以下の通りです。「セルF2が『対応済み』かつ、セルG2が空欄」という2つの条件を指定しています。両方の条件を満たす場合は結果が「1」になるため、IF関数で「要確認」と表示します。

=IF(COUNTIFS(F2,"対応済み",G2,"")>0,"要確認","")

セルJ2に「=IF(COUNTIFS(F2,"対応済み",G2,"")>0,"要確認","")」と入力します(③)
数式をコピーすると、「対応済み」にもかかわらず、完了日が空欄の行に「要確認」と表示されます

 同じ要領で「キャンセルなのに請求金額が入力されている」「未対応なのに対応日が入力されている」といった、業務ルールに合わないデータもチェックできます。どのような状態をミスと判断するのかを決めてから、条件を数式に置き換えるのがポイントです。

表のルールを数式に置き換えてみよう

 フィルター機能を利用して、各チェック列で「重複」「未入力」「要確認」を絞り込めば、後の処理もスムーズです。条件付き書式を設定して、該当する文字やセルに色を付けてもいいでしょう。

 ただし、数式でチェックできるのは、あらかじめ決めた条件に一致するミスだけです。入力内容そのものが正しいかは判断できません。まずは、重複してはいけない項目、必ず入力する項目、入力内容が連動する項目を整理しておきましょう。確認用の列を用意しておけば、入力中の段階でもミスに気付けるようになります。