ExcelのA列の異なる数字のカウント方法とは?

このQ&Aのポイント
  • ExcelのA列には1から10,000までの数字がありますが、同じ数字は1個か2個しかありません。
  • B列にはaかbが入っており、両方がある場合もあります。
  • A列で異なる数字が何件あるかカウントする方法を教えてください。実際のデータは順列ではなく、英数字が入っています。
回答を見る
  • ベストアンサー

以下のようなEXCELのA列をカウントしたいです。

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

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.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列での種類の総数が表示されます。 ためしに他の提案されている方法と計算速度を比較してみてください。

gomigomi12
質問者

お礼

サンキューです

その他の回答 (2)

noname#204879
noname#204879
回答No.2

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

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

A列が数字なら以下のような関数でA列の数字の種類(個数)が計算できます。 =COUNT(1/FREQUENCY(A1:A100,A1:A100)) A列が文字列なら以下の式を入力してCtrl+Shift+Enterで確定してみてください。 =SUM(IF(A1:A100<>"",1/COUNTIF(A1:A100,A1:A100)))

関連するQ&A

  • エクセル 重複データのカウント

    初めまして。 初めて質問いたします。 よろしくお願いいたします。 エクセルで、A列に7ケタの数字13万件         B列に同じく7ケタの数字100~2000件         C列にB列にデータがある行まで=COUNTIF($A$2:$A$130000,B2) 上記の状況で、C列の値は1か0しか出ない状態なので、 セルD1に=COUNTIF(B2:B2000,0)と入れてB列にあるけどA列にないデータの 数(重複していないデータ)をカウントしています。 しかしながら、ベースとなっているA列のデータが13万件と多いので、 再計算などに結構時間がかかっているので、どうにかならないかと思いまして 質問させていただきました。 ちなみに、A列のデータは少しずつ増えていきます。 1度B列にあってA列にないデータは、次にB列に違うデータを入れてカウントする際に 新規データとしてA列に追加しています。 なんとか処理が速くなる方法などありましたらご教授下さい。 よろしくお願いいたします。

  • Excelで1列のデータを5列に振り分けする

    Excel2003でA列に1行にあるデータ(半角英数字)を 次のシートに、1行ずつコピーして、それを5列に振り分けするというマクロを作りたいです。 (ただし、コピーは2つずつの時もあります。) 元データ ●A列 B列 C列  1  2  3  4  5  ・  ・ 加工後 ●A列 B列 C列 D列 E列   1   1   2   2   3   3   4   4   5   5   上記のような感じです。ただデータは数字のみでなくて、英数字です。 Excelのマクロは全くの初心者で大変困っています。 どうぞよろしくお願いたします。

  • COUNTIFSでの"a"がカウントされないのは?

    2007にて、列Bの55と列Cの"a" が一致する場合の列Aの"あ"をカウントする式として下記にて問題なくカウントされています。 =COUNTIFS(A2:A5000,"あ",B2:B5000,55,C2:C5000"a") 別の条件から"a"をカウントしたく、上記のカッコの中の部分を下記のようにすると「0」となりカウントされません。 (C2:C5000,"a",D2:D5000,1,E2:E5000,"△") "a"を"?"とするとカウントはされますが、b,cも含まれるため役にたちません。 C列の書式も標準となっております。どこにアナがあるでしょうか? この関数を使っていて気づいたのですが、2行目は絶対参照にしているのですが、データが頻繁に増えるため5000行のところは相対となっています。式のコピーにより行番号がずれ不一致となると機能しません。 これだと、列によって対象範囲(行番号)を変えるということが出来ないのですが対処法はあるのでしょうか?

  • 列に含まれる同じ文字列をカウントし、表示させる方法を教えてください。

    簡単な質問かもしれませんが、どうかお願い致します。  A    B   C    D    E    F    G  5桁  2桁       5桁 カウント  2桁 カウント 11111  11 11111  11 11111  11 11111  11 11121  11 11121  11 12111  12 13111  13 上記のような A列には5桁の数字 B列には2桁の数字 エクセルのデータがあるとして、 まず、A列で同じ数字をカウントし、  A    B   C    D    E    F    G  5桁  2桁       5桁 カウント  2桁 カウント 11111  11      11111  4 11111  11      11121  2 11111  11      12111  1 11111  11      13111  1 11121  11 11121  11 12111  12 13111  13 のように表示させたいのですが、どうしたらいいかわかりません。 データが膨大で数字がランダムな為、CountIfは使えないんだと思いますが、素人なので、詳しくはわかりません。 また、B列が何なのかと言いますと、A列の上2桁が入っています。 なぜ必要かなんですが、理由があります。 A列で5桁でカウントした個数が2以下の場合、5桁ではカウントせずに、2桁でカウントするという風にしたいのです。 しかも、5桁でカウントし、3以上だった数字については2桁ではカウントしない様にしたいんです。 要するに、最終的に  A    B   C    D    E    F    G  5桁  2桁       5桁 カウント  2桁 カウント 11111  11       11111  4    11   2 11111  11                  12   1 11111  11                  13   1 11111  11 11121  11 11121  11 12111  12 13111  13 のように表示させたいんです。 長々とすみません。 ご指導のほど、よろしくお願いいたします

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • エクセルA列の数字に合わせる方法を教えてください

    例えばA列(1~10)の通し番号に対し、B列(1、3、6、8)・C列(2、3、6、10)の数字を同じ行に来るようにする方法はありますか?

  • Excel 2列を比較して合致するものをカウントしたい

    A B 1 2 1   2      …* 1 1 A列とB列を比較して、ともに空欄であるものをカウントさせたいのですがどうのような関数を使ったらよいでしょうか? 上記場合だと「*」の行がA列B列ともに空欄なのでこれをAまたはB列の最後に「1」とカウントさせたいのです。できれば他の列に余計な数式を入れてそれを計算させると言う事をしたくないのですが、何か解決方法があればよろしくお願いします。

  • 以下のようにA列に16桁の数があります。これが何種類あるかをカウントし

    以下のようにA列に16桁の数があります。これが何種類あるかをカウントし(この場合は"5")その数を行数として使用したいのです。Range(Range("B1"), Range("B5").Select                               ↑                      この矢印部分(B5の5)にそのカウントした数を使用したいのです。よろしくお願いします。    2009042505020101 2009042505020101 2009042505020102 2009042505020102 2009042505020102 2009042505020103 2009042505020103 2009042505020103 2009042505020103 2009042505020105 2009042505020109 2009042505020109 2009042505020109

  • 《エクセル2000》条件にあった行のみ、数字の個数をカウントする?

    皆様、こんにちは。 A1~B20の範囲に数字と空白が混在しています。 「A列に数字が入っている行のみ、B列に入っている数字の個数をカウントする(A列に空白が入っている行はカウントしない。A列に数字が入っていてもB列に入っていなければもちろんカウントしない)」 …という式は作れるでしょうか。 合計はSUMIFを使えばいいのですが、同じ式をCOUNTIFには流用できないんですね(困惑)。 (↑これも以前ここで聞いて、教えて頂いたのですが) どうかどうか、よろしくお願いします。

  • エクセル データのカウント方法について

    QNo.2568108でお世話になっています。 まだ全て解決はしていないのですが、追加で質問が出来てしまいましたので投稿させてもらいました。     A列 1行目 010,030,050,070,080,100,110,130,140 2行目 020,030,050,060,080,090,100,110,120,130,140,150,160,180 3行目 020,030,080,100,120 と、大量のデータがあります。 1つのセル内に入力されている番号をカウントする方法があれば教えて頂ければと思います。よろしくお願いします。 【希望する答え】     B列 1行目 9 2行目 14 3行目 5 ・ ・ ・ 合計  9+14+5+・・・

専門家に質問してみよう