2列のデータを比較して、データの有無を検証をする
おはようございます! Excel講師の榊裕次郎です。
昨日の夜はなかなか寝付けず、しかも眠りも浅くて、朝のめざましが鳴ってもなかなか起きれなかったです……。きつい午前6時30分でした。
Excel講座がないので、Excelの質問もなく、Excelを開くこともないのですが、今朝は父から2列のデータを比較して、データの有無を検証できるかどうかのお問い合わせをいただきました。
さっそく紐解いていきましょう。要件はこのとおり。
- [データA] 列のグループが親になる。
- [データB] 列のグループが子になる。
- 2列を比較して、[データA] 列(親側)のみ含まれているデータを抽出したい。
- ただし、[データA・B] 列ともに、重複したデータが含まれている。
- 該当データが抽出できれば、作業は完了。
新卒向けのExcel練習ドリルです。
↑のサンプルデータの場合、[データA] 列の「B」というデータをピックアップできれば正解です。上記データは目視で解決できますが、これが1,000行以上あるデータだったら目視では処理できません。
さて、どう解決しましょう?
Excelの操作は、答えが1通りであることはないので、これが正解。というものでもないのですが、ぱっと思いついたのが[COUNTIF関数]を使った検証です。
検証列を作成し、アクティブセルを赤枠の位置に置きます。
[数式] タブ → [その他の関数] → [統計] → COUNTIF関数を選択します。
引数の範囲は、 [データB] 列のある場所を列ごと選択します。この場合、見出しなどは無視されるので特に問題ありません。検索条件には、[データA] 列の先頭のセルを選択します。
サンプルの場合は C:C , B3 となりました。C列のデータから、セルB3に含まれる [A] というデータは何件あるか? という数式になります。
COUNTIF関数は、条件にマッチしたデータの件数を出してくれるので、もし [0] と出力された場合、そのセルのデータはC列に含まれていない、ということになります。
OKボタンで確定したら、オートフィルを行います。データで [0] と出力された [データA] 列の個所が、[データB] 列に含まれていないデータです。
検証列で、[データ]タブより、フィルターを設定します。[0] のみチェックを入れて抽出しましょう。
検証した結果、[データB] に存在していないデータは [B] ということがわかりました。
この手の作業をする際、ポイントとなるのは、① 元データ上のシートで操作をしない、② データ列がA・B それぞれ別シート・別ブックにあるなら、値貼り付けで整理する、というもの。
新しいシートを1つ作って、そこを調理台として検証してください。