• ベストアンサー

エクセルで一定範囲内に含まれる文字の数の数え方

エクセルで、一定の範囲内に含まれる数字や文字列の、ダブりを省いた個数を数える関数(またはやり方)というのはありますか? 何と表現してよいのか分からないため、質問文が分かりにくくなっていしまいますが、例えばある行なり列なりに 1 2 3 4 3 2 1 10 20 30 10 20 30 10 20 とあった場合、ここに出てくる数字は1,2,3,4,10,20,30の7種類なので「7」という具合にカウントできる方法を探してます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.4

もう一つの問題として「=SUMPRODUCT(1/COUNTIF(範囲,範囲))」 の場合 空白セルが入った時 エラーになります。それらを避けようと すると何らかの工夫が必要です。 文字列まで集計したい場合でも =COUNT(1/(MATCH(A1:A20,A1:A20,0)=ROW(A1:A20))) Ctrl + Shift + Enterで確定 のような形で計算すればいいです。この計算の場合 気を付けないとい けないのは 空白文字列の扱いくらいです。 はっきりいえるのは こういう時は ピボットテーブルの集計結果を数え た方が良いと思います。

Jun__K
質問者

お礼

丁寧な解説、ありがとうございます。 ピボットテーブルというものは知りませんでした。 仕事の中で、どちらかと言えばやってもやらなくてもいいという程度の必要度で、あるエクセルファイルに入力されている人名なり会社名なりの出現回数の分析をしてみたかったのですが、思っていたよりも手軽にはいかないようですね。

その他の回答 (3)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

> B2: {=SUM(1/COUNTIF(B4:B18,B4:B18))} このような方法は 以前から指摘していますが場合によって演算誤差が発生 します。計算後の値を何かに使う場合には丸めるなど 別途対応が必要です。 数値の種類数を数える時は =COUNT(1/FREQUENCY(A:A,A:A)) もしくは =SUM(IF(FREQUENCY(1:1,1:1),1)) のような方法をお勧めします。

noname#204879
noname#204879
回答No.2

添付図参照 B2: {=SUM(1/COUNTIF(B4:B18,B4:B18))} D10: {=SUM(1/COUNTIF(F10:T10,F10:T10))} 何れも配列数式です。

Jun__K
質問者

お礼

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

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.1

以下のページに解説とともに方法が紹介されています。 Excel 関数で重複を除いてデータの件数を求める方法 http://software.ssri.co.jp/statweb2/tips/tips_14.html

Jun__K
質問者

お礼

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

関連するQ&A