はじめに
今回はExcelのcountif関数の応用で、『ダブっているものは数えない』方法をまとめます。
一応これまでに書いたcountif関連の記事をまとめておきます。
本記事はcountif系の中では応用寄りの手法になると思いますので、そもそも「countifってナニ?」という方はこれらの関連記事で基本を抑えてから読んでいただくほうが良いかなと思います。
環境
Excel (Microsoft Office 365 ver. 1811)
※基本的に少々バージョンが違っても問題はありません。
今回やりたいのはこういうこと
図のようにA列に50個の都道府県名(重複あり)が入力されているとき、一体何種類の都道府県名が入力されているでしょう?
こういった場合の求め方です。
サンプルファイルはこちらからDLできます。(※ご利用は自己責任でお願いします)
方法
主な方法は3種類
こういった場合、3種類の方法が考えられます。
- 『重複削除』機能を使って数だけを知る
- sumproduct関数とcountif関数の合わせ技を利用
- sum関数とcountif関数の合わせ技(配列数式)を利用
今回は1と2の2種類の方法に関してご紹介します。
3の方法を紹介しないのは、2の方法とほぼ同じで、少し難しい概念が含まれるからです。興味のある方は『配列数式』と調べると良いと思います。
『重複削除』機能を使って数だけを知る
まず1つ目の方法、こちらのほうが簡単です。が、なんとcountifを使わない方法です。
今回はA列しか無いのでこのままでOKです。
ちなみに先頭行に見出しがある(今回の例だと『県名』みたいな)場合は、『先頭行をデータの見出しとして使用する』にチェックを入れておくとうまいことやってくれます!(次の画像)
一意の値とはつまり『ダブってない』もののこと。重複する24個の値が見つかったということなので、ダブっている部分が24個あり、ダブりを除くと26種類の都道府県が残ったということですね。24+26=50ということでもともとのデータ数50個に一致することも確認できました。
重複削除はそもそもダブっているデータを見つけて削除する機能なので、A列からダブったデータが削除されていることに注意してください。
数だけが必要なら確認後に『元に戻す(Ctrl+Z)』などでデータを削除前に戻すなどの作業が必要です。
重複が24、一意の値が27で24+27=51のように1つズレが生じることがあると思います。これはSTEP1でA列全体を選択してしまった場合です。この場合A51以降の『空白』も1つのデータとみなされるせいで、50個しかデータがなくても空白を加えた51個のデータがあるものとして表示されてしまうので注意です。きちんとデータの入っている部分だけを選択しましょう。
重複削除の機能を使うとかなり簡単にダブりを除いた数を知ることができます。
こちらのデメリットはデータそのものを変化させてしまう(ダブりデータを消す)ことでしょうか。また、countifのようにどこかのセルに計算結果を表示するわけではないので、数だけがサクッと知りたい!というときに向いていると思います。
まぁ普通に『ダブっているデータを消したい』場合はこれで何も問題ないですね。
sumproduct関数とcountif関数の合わせ技を利用
さて、お次の方法はcountifを利用する方法です。
少し難しいと思うので、今回はやり方だけを紹介、どうしてこれでダブリを除いた結果が得られるのか、という部分については解説記事を別に書きます。
B1にダブりを除いた数を表示させてみます。
画像にあるようにB1に次の関数を打ち込みます。
『範囲』はカウントしたいデータの入っている部分なので今回でいうとA1~A50ですね。
=SUMPRODUCT(1/COUNTIF(範囲,範囲))
※2つの『範囲』は同じものを入れる
結果が表示されます。
先ほどの重複削除を用いた場合と同じ26という結果が得られましたね。
ちょっと難しいのでなぜこれでダブりを除いた数が得られるのかは別記事で書きますね。
(こちらにリンクを用意します。作成中。)
こちらは元データに影響を与えませんし、26という数も表示されたままです。
ちなみにデータが増えた場合は関数中の『範囲』も変更しなければならないので注意してください。
おわりに
以上、同じデータ(ダブっているデータ)を数えないcountifの使い方+重複削除機能をご紹介しました。
実はこちらは当ブログの検索キーワードでよく見るネタだったのです。今後も検索キーワードを参考にしながら需要の高そうな記事を書いていこうと思います。