[EXCEL]列の項目を何種類かカウントする方法
いつもお世話になっています。Excelで3000件ぐらいのデータを整理したいのですが、普通に合計などはできますが、1列に何種類かのデータが色々な順で混在している場合、それが全部で何個かではなく、何種類かをすぐに計算する方法はありますか?
たとえば、"りんご"・"みかん"・"いちご"・"りんご"・"ばなな"
とそれぞれ入力しているとして、個数は5個だけれども種類は4種類ですよね。この種類の数を出せるとうれしいのですが。どなたか教えてください。
今、使っているのはOffice2003ですが、方法が違うようならOffice2000での方法もわかる方いらっしゃれば教えてください、お願いします。
回答(5件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
例えば、A1:A10に種類カウント対象データが、あるとしたとき、
範囲内に空白を許可し、その空白を種類としてカウントしない場合は、
=SUMPRODUCT(IF(A1:A10<>"",1/COUNTIF(A1:A10,A1:A10),0))
または、
=SUM(IF(A1:A10<>"",1/COUNTIF(A1:A10,A1:A10)))
の数式を入れ、双方 Ctrl+Shift+Enter で確定します。(両端が{}で括られてます。)
また、次の2つは、範囲内に空白を許可しない場合です。
=SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10))
または、
=SUM(1/COUNTIF(A1:A10,A1:A10))
こちらは、Ctrl+Shift+Enter で確定する。
これで範囲内の種類の数が表示されますが、如何でしょうか。
この回答へのお礼
ありがとうございます。試してみましたが、DIV/#0と表示されうまくいきませんでした。何度か確認してみます。
No.3ベストアンサー20pt
自信はありませんが、
以下の数式は、1件目のデータを1と返し、2件目移行に出現する重複データを0と返す数式です。
=IF(A1=0,0,IF(COUNTIF($A$1:A1,A1)>1,0,1))
はじめに、上記式のセル番地A1とはデータの始まりがセルA1の場合ですので、ご自身のデータで始まりのセル番地と置き換えて下さい。あとはオートフィルでコピーです。
最後に、ランダムに算出された1と0に対し、SUM関数で合計を求めれば種類(重複しない個数)を出すことができるかと思います。
この回答へのお礼
ありがとうございました。すごいです。スッキリしている式なので、分かりやすく使いやすいです。
種類の個数も正確に求められました。ありがとうございました。
No.2ベストアンサー10pt
こんばんは
作業列を使ってもいいですか?
仮にB列を作業列にします。
A B C
1 名前
2 りんご
3 みかん
4 いちご
5 りんご
6 ばなな
7
データが2行目から始まってるとして
B2に =IF(A2="","",IF(MATCH(A2,$A$2:$A$3000,)=ROW(A1),ROW(A1),""))
と入力 B3000までフィルコピー
任意のセルに =COUNT(B:B)
これで何種類あるか求められるはずです。
注)B2に入れた式の ROW(A1) の部分は データの一行目に「1」
二行目に「2」という数字が欲しいのでそうしているので
A1セルの内容を参照しているわけではありません。
実際のデータが何行目から始まるのかは分かりませんが
ROW(A1) の部分は A1 のままにしていてください。
例)データが3行目から始まるのなら
B3に =IF(A3="","",IF(MATCH(A3,$A$3:$A$3000,)=ROW(A1),ROW(A1),""))
として B3000までフィルコピー
必要に応じて作業列は非表示にして下さい。
この回答へのお礼
非表示にする作業列などもどんどん活用するべきなんですね。一度にしようとしてサッパリ混乱してきます。
ありがとうございました。
(1) データを並べ替えて良いなら...
A B
1
2 いちご =$A2<>$A1
3 ばなな =$A3<>$A2
4 みかん =$A4<>$A3
5 りんご =$A5<>$A4
6 りんご =$A6<>$A5
7 種類の数 =COUNTIF(B$2:B$6,TRUE)
(2) データを並べ替えないなら...
A B
1
2 りんご =COUNTIF($A$2:$A$6,A2)
3 みかん =COUNTIF($A$2:$A$6,A3)
4 いちご =COUNTIF($A$2:$A$6,A4)
5 りんご =COUNTIF($A$2:$A$6,A5)
6 ばなな =COUNTIF($A$2:$A$6,A6)
7 種類の数 =COUNTA(B$2:B$6)/HARMEAN(B$2:B$6)
というような方法でいかがでしょうか。トリッキーな感じですがちゃんと答えが出ますよ。
この回答へのお礼
ありがとうございました。考え方の参考になりました。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











