こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

エクセル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です。

これを関数で求めたいのです。

よろしくお願いします。

投稿日時 - 2007-06-06 13:31:44

QNo.3061344

暇なときに回答ください

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

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

投稿日時 - 2007-06-06 13:49:32

お礼

御礼が遅くなり大変申し訳ありません。

いただいた式をあてはめても出来なかったので、とまどいましたが、
=SUMPRODUCT(((B3:B10<>"")/COUNTIF(B3:B10,B3:B10&"")))
としたところ、上手く個数が得られました。

式をいれずに一発で出来る関数は無いのですよね。

これからは、これを活用しようと思います。

ありがとうございました。

投稿日時 - 2007-06-17 15:08:50

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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)),))

投稿日時 - 2007-06-07 05:17:44

お礼

御礼が遅くなり大変申し訳ありません。

求めていた値を得ることが出来ました。


式をいれずに一発で出来る関数は無いのですよね。


ありがとうございました。

投稿日時 - 2007-06-17 15:13:29

ANo.1

http://oshiete1.goo.ne.jp/qa2710769.html
をご覧ください。

投稿日時 - 2007-06-06 13:41:25

お礼

お礼が遅くなり大変申し訳ありません。

過去にも同じ質問がありましたね。すみませんでした。

参考になりました。
ありがとうございました。

投稿日時 - 2007-06-17 15:18:25

あなたにオススメの質問