プロが教える店舗&オフィスのセキュリティ対策術

エクセルで、一定の範囲内に含まれる数字や文字列の、ダブりを省いた個数を数える関数(またはやり方)というのはありますか?

何と表現してよいのか分からないため、質問文が分かりにくくなっていしまいますが、例えばある行なり列なりに

1 2 3 4 3 2 1 10 20 30 10 20 30 10 20

とあった場合、ここに出てくる数字は1,2,3,4,10,20,30の7種類なので「7」という具合にカウントできる方法を探してます。

A 回答 (4件)

もう一つの問題として「=SUMPRODUCT(1/COUNTIF(範囲,範囲))」


の場合 空白セルが入った時 エラーになります。それらを避けようと
すると何らかの工夫が必要です。

文字列まで集計したい場合でも

=COUNT(1/(MATCH(A1:A20,A1:A20,0)=ROW(A1:A20)))
Ctrl + Shift + Enterで確定

のような形で計算すればいいです。この計算の場合 気を付けないとい
けないのは 空白文字列の扱いくらいです。

はっきりいえるのは こういう時は ピボットテーブルの集計結果を数え
た方が良いと思います。
    • good
    • 0
この回答へのお礼

丁寧な解説、ありがとうございます。
ピボットテーブルというものは知りませんでした。

仕事の中で、どちらかと言えばやってもやらなくてもいいという程度の必要度で、あるエクセルファイルに入力されている人名なり会社名なりの出現回数の分析をしてみたかったのですが、思っていたよりも手軽にはいかないようですね。

お礼日時:2014/10/31 21:14

> B2: {=SUM(1/COUNTIF(B4:B18,B4:B18))}


このような方法は 以前から指摘していますが場合によって演算誤差が発生
します。計算後の値を何かに使う場合には丸めるなど 別途対応が必要です。

数値の種類数を数える時は

=COUNT(1/FREQUENCY(A:A,A:A))

もしくは

=SUM(IF(FREQUENCY(1:1,1:1),1))

のような方法をお勧めします。
    • good
    • 0

添付図参照


B2: {=SUM(1/COUNTIF(B4:B18,B4:B18))}
D10: {=SUM(1/COUNTIF(F10:T10,F10:T10))}
何れも配列数式です。
「エクセルで一定範囲内に含まれる文字の数の」の回答画像2
    • good
    • 0
この回答へのお礼

私が出した例を使って実演して下さった様ですが、確かにどちらも「7」と出てますね。
画像付きで分かりやすいご説明、ありがとうございます。

お礼日時:2014/10/31 21:10

以下のページに解説とともに方法が紹介されています。



Excel 関数で重複を除いてデータの件数を求める方法
http://software.ssri.co.jp/statweb2/tips/tips_14 …
    • good
    • 0
この回答へのお礼

ありがとうございます。

私の調べが足りないだけで、こういうことが一発でできる関数があるのかと思いましたが、
一筋縄ではいかないんですね。

お礼日時:2014/10/31 21:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!