人に聞けない痔の悩み、これでスッキリ >>

以下のようなデータ行が10000件くらいあります。
A列には1から10,000までの数字があります。同じ数字が1個か2個あります。3個以上はないです
B列にはaかbどちらかが入っています。(両方ある場合もあります)
この時、A列で異なる数字が何件あるかカウントするのはいい方法はないでしょうか?
以下の例ですと、データは10件ですがA列に入っている数は7種類です。
この「7種類」という数字を弾きたいのですが、いい方法はないでしょうか?
(実際のデータは1から順列でなく、PC管理番号のような英数字が入っています)

A列 B列
1a
1b
2a
3a
3b
4a
5b
6b
7 a
7 b

このQ&Aに関連する最新のQ&A

A 回答 (3件)

10000件もあるデータでしたら高度な式を使うよりも分かり易く単純な方法が計算速度を速めるためにも得策です。


作業列を使って対応する方法です。
お示しの表が2行間から下方にあるとしてC2セルには次の式を入力します。

=IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,"")

その後にC2セルをコピーします。名前ボックスにはC2と表示されていることでしょうがC2:C10000のように変更しEnterキーを押します。これでC10000セルまでが範囲として設定されますので右クリックして「貼り付け」を行います。
その後に例えばD2セルに =MAX(C:C) と入力すればA列での種類の総数が表示されます。
ためしに他の提案されている方法と計算速度を比較してみてください。
    • good
    • 0
この回答へのお礼

サンキューです

お礼日時:2012/05/20 10:10

=SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10))

    • good
    • 0

A列が数字なら以下のような関数でA列の数字の種類(個数)が計算できます。



=COUNT(1/FREQUENCY(A1:A100,A1:A100))

A列が文字列なら以下の式を入力してCtrl+Shift+Enterで確定してみてください。
=SUM(IF(A1:A100<>"",1/COUNTIF(A1:A100,A1:A100)))
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング