• ベストアンサー

エクセル 種類の個数をカウントする関数はありますか

エクセル2002を使用しています。 重複データはひとつの種類として、範囲内のデータの種類数を計算したいのですが、どのようにすべきでしょうか? この範囲内には、ところどころ空白セルがあります。 例 B列 3行  10 4行  11 5行  12 6行 7行  15 8行 9行  15 10行  18 これで、B3からB10の範囲の種類別のデータの数は5です。 これを関数で計算したいのです。 本当は対象データが多いので、とりあえず、ピボットテーブルをかけて、抽出されたデータの一覧から使用した行数を数えて正解の数はわかりましたが、こんな方法はエクセルらしくないですよね。 また、データが数値でなかった場合も、関数で求められるでしょうか? 例 B列 3行  鈴木 4行  鈴木 5行  佐藤 6行 7行  高橋 8行 9行  高橋 10行  野口 この場合は、鈴木・佐藤・高橋・野口 で、データの種類の個数は4です。 これを関数で求めたいのです。 よろしくお願いします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

=SUMPRODUCT((B3:B10<>"")/COUNTIF(B3:B10,B3:B10&""))

pocorino
質問者

お礼

御礼が遅くなり大変申し訳ありません。 いただいた式をあてはめても出来なかったので、とまどいましたが、 =SUMPRODUCT(((B3:B10<>"")/COUNTIF(B3:B10,B3:B10&""))) としたところ、上手く個数が得られました。 式をいれずに一発で出来る関数は無いのですよね。 これからは、これを活用しようと思います。 ありがとうございました。

その他の回答 (2)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆データが数値なら =COUNT(1/FREQUENCY(B3:B10,B3:B10)) =COUNT(1/FREQUENCY(B1:B100,B1:B100)) =COUNT(1/FREQUENCY(B:B,B:B)) ◆データが数値または文字列なら =COUNT(INDEX(1/(MATCH(B3:B10,B3:B10,)=ROW(B1:B100)),)) =COUNT(INDEX(1/(MATCH(B1:B100,B1:B100,)=ROW(B1:B100)),))

pocorino
質問者

お礼

御礼が遅くなり大変申し訳ありません。 求めていた値を得ることが出来ました。 式をいれずに一発で出来る関数は無いのですよね。 ありがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1
pocorino
質問者

お礼

お礼が遅くなり大変申し訳ありません。 過去にも同じ質問がありましたね。すみませんでした。 参考になりました。 ありがとうございました。

関連するQ&A