- ベストアンサー
[EXCEL]列の項目を何種類かカウントする方法
いつもお世話になっています。Excelで3000件ぐらいのデータを整理したいのですが、普通に合計などはできますが、1列に何種類かのデータが色々な順で混在している場合、それが全部で何個かではなく、何種類かをすぐに計算する方法はありますか? たとえば、"りんご"・"みかん"・"いちご"・"りんご"・"ばなな" とそれぞれ入力しているとして、個数は5個だけれども種類は4種類ですよね。この種類の数を出せるとうれしいのですが。どなたか教えてください。 今、使っているのはOffice2003ですが、方法が違うようならOffice2000での方法もわかる方いらっしゃれば教えてください、お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
自信はありませんが、 以下の数式は、1件目のデータを1と返し、2件目移行に出現する重複データを0と返す数式です。 =IF(A1=0,0,IF(COUNTIF($A$1:A1,A1)>1,0,1)) はじめに、上記式のセル番地A1とはデータの始まりがセルA1の場合ですので、ご自身のデータで始まりのセル番地と置き換えて下さい。あとはオートフィルでコピーです。 最後に、ランダムに算出された1と0に対し、SUM関数で合計を求めれば種類(重複しない個数)を出すことができるかと思います。
その他の回答 (4)
- ja7awu
- ベストアンサー率62% (292/464)
例えば、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と表示されうまくいきませんでした。何度か確認してみます。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
最近似たような質問がありました http://okweb.jp/kotaeru.php3?qid=1478412
お礼
すみません。気をつけます。
- kaisendon
- ベストアンサー率44% (114/257)
こんばんは 作業列を使ってもいいですか? 仮に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までフィルコピー 必要に応じて作業列は非表示にして下さい。
お礼
非表示にする作業列などもどんどん活用するべきなんですね。一度にしようとしてサッパリ混乱してきます。 ありがとうございました。
- grape16
- ベストアンサー率55% (52/93)
(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) というような方法でいかがでしょうか。トリッキーな感じですがちゃんと答えが出ますよ。
お礼
ありがとうございました。考え方の参考になりました。
お礼
ありがとうございました。すごいです。スッキリしている式なので、分かりやすく使いやすいです。 種類の個数も正確に求められました。ありがとうございました。