- ベストアンサー
エクセル関数 重複したものを削除する
皆さんおお知恵を拝借させてください。 101 102 103 104 105 106 102 103 101 とあったときに 101 2個 102 2個 103 2個 104 1個 105 1個 106 1個 となりますので、コード数としては6個になりますが、このように数えれる関数がないものかとこのサイトで検索していましたら、 SUMPRODUCT(1/COUNTIF($A$1:$A$9,A1:A9)) という関数があることが分かりました。そこで早速こちらの関数を試してみたところ、確かにエクセルに空白のセルがない状態であれば重複数字を数えることなしにカウントできることがわかりました。 しかし、ある事情により私のエクセルデータには空白のセルがあり、冒頭の例でいきますと SUMPRODUCT(1/COUNTIF($A$1:$A$11,A1:A11)) (空白セルが2つあるため) としなければならないのですが、そうすると #DIV/O というエラーがでてしまいます。 どのたか対処方をご存知の方教えていただけないでしょうか? よろしくお願いします。 ちなみに今回記載した三桁のコードは便宜上101~106と、つらなった数字をつかっていますが、実際にはそうはなっていません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
最近は定番化してきましたが http://oshiete1.goo.ne.jp/qa2748564.html の#06さんの回答がよいでしょう
その他の回答 (1)
{=SUM(IF(A1:A11="","",1/COUNTIF(A1:A11,A1:A11)))} 【注】これは配列数式です。
お礼
回答者様ありがとうございます!! カウントすることができました。助かりました。 ついでにお時間があれば教えてほしいのですがA1:A11のすべてを $A$1:$A$11に変更しても問題はないでしょうか? 行の挿入等で11の部分が20になったり9になったりしますので もしお時間があれば教えてください。
補足
回答ありがとうございます。早速ためしてみましたがなぜか0こになってしまいます。 ちなみに D27からD37に 101 102 103 105 106 102 103 101 の数字がはいっています。(D36とD37は空白です。) そこで、教えていただいたサイトの回答にある数式のセル欄を変更し、 =COUNT(INDEX(1/(MATCH(D27:D37,D27:D37,)=ROW(D27:D37)),)) といれて試してみましたが、0 とでてしまいます。 もし、原因がわかるようでしたら教えていただけないでしょうか?。 よろしくお願いします。