種類の数をカウントする方法

このQ&Aのポイント
  • テキストデータに含まれる種類の数をカウントする方法について教えてください。
  • エクセル2003で、テキストデータの中に含まれる異なる要素の数を数える方法が知りたいです。
  • また、別のシートで数字列の中に含まれる異なる要素の数を数える方法も教えてください。
回答を見る
  • ベストアンサー

種類の数をカウントする方法。

連投で初歩的な質問をしますが、よろしくお願いします。 エクセル2003です。 A列に あ、い、う、え、う、え、あ、い、か、い、か と文字が入力されているとします。 何種類の文字が入っているかカウントする関数はありますでしょうか。 あれば教えてください。 (上記の場合の答えは、5種類という答えとなります。) また別のシートでA列に1,2,3,13,103,1、300、2と入力されているとします。 何種類の数字列(103や300は一種類とカウントします。)が入っているか、 カウントする関数はありますでしょうか。あれば教えてください。 上記の場合の答えは、6種類という答えとなります。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

数値,文字列に対して区別無く使える,範囲内に空白セルがあっても良い: =ROUND(SUMPRODUCT(1/COUNTIF(A1:A100,A1:A100&"")),0)-(COUNTBLANK(A1:A100)>0) 数値列に対して使える,範囲内に空白セルがあっても勿論よい: =COUNT(1/FREQUENCY(A:A,A:A)) など。

7nikochan
質問者

お礼

ご回答ありがとうございました。うまくいきました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

A1:A11に質問のデータがあるとする。(列方向にデータがあるとする) A列の中で例えば「あ」が3度現れるなら、その都度1/3と言う数を各行で出して、その他の文字でもそれをして、それを全部足し算すれば良い。 それは SUM(1/COUNTIF(A1:A11,A1:A11)) と入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする。配列数式という。 配列にしない場合は =SUMPRODUCT(1/COUNTIF(A1:A11,A1:A11)) 空白セルはない場合の式 ーー 後半は、>103や300は一種類とカウントします、はどういう考えで、そうなるのか判らない。 数字1文字単位で考えるのか? 前半の数字版と考えても、6になるのでは? ーーーー 前半は Frequency関数は数値対象で使えない。フィルタオプションの設定の重複するレコードは無視するで、実際の文字列が出るので数えるのは簡単でそういうやり方も在る。

7nikochan
質問者

お礼

ご回答ありがとうございました。 また、丁寧に教えてくださり感謝します。 2番の方の教えてくださった式で、うまくいきました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

後半のご質問の意味が分からないのですが。103や300は一種類とカウントしますとありますがこれはどうして一種類なのですか?

7nikochan
質問者

お礼

一緒に考えてくださり、ご親切にありがとうございました。 お気持ちがとてもうれしいです。

7nikochan
質問者

補足

補足のご依頼ありがとうございます。 「103や300を一種類とカウントします」と書いたのは 103を「1」「0」「3」、300を「3」「0」「0」と 受け取られるといけないと思ったからです。 わかりにくい質問文で失礼しました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

最初の問題は次の式で答えを求めることができます。 =SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))

7nikochan
質問者

お礼

ご回答ありがとうございます。たすかりました。

関連するQ&A

  • エクセルのカウント方法

    エクセルのカウント方法で悩んでいます。どなたかお願いします。   A列  B列  1  abc  ○ 2      ○ 3  abc  ○ 4  def  ○ 5  ghi 6  jkl  ○ A列、B列ともに文字列が入力されている個数を求めたい。 ただし、A列で重複した場合はカウントしない。 上記の場合は 3 となる。

  • エクセルのセルのカウント方法で質問です。

    エクセルのセルのカウント方法で質問です。 A列B列C列があります。 A列とB列のセル内の文字が指定した文字の時 C列のセル内に文字が入力されてる場合にカウントするにはどうすればよいでしょうか またカウントではなくC列に数字が入力されているとして合計値を出したい場合も教えてください。 例として画像を貼り付けます。

  • EXCELでのカウント

    こんんちは!いつも使っている簡単な関数ならわかるのですが... 範囲→1列(A列やB列) 範囲内で指定の文字が入力されているセルの数をカウントしたい(返したい)んです。 例)B列に「2」「23」「50」「13」「12」と入力されているとしたら   「2」を入力しているセルをカウントしたかったら   「3」と出てくるように... COUNTIF関数だと「2」を指定したら「2」と入力したセルだけカウントされますよね。(例えば上記例だと「1」と帰ってくる。これを「2」を含んでいるセルの数をカウントしたいんです。 教えてください。 宜しくお願いいたします。

  • エクセルの異なるシート間で、個数をカウントする方法について

    エクセルの異なるシート間で、個数をカウントする方法について エクセル上の「Sheet3」上に下記データがあります。  A列    …    CN列   CO列   CP列  日付    …    答01   答02    答03 2010/6/1    …    1     5     8 2010/6/2    …    5     7 2010/6/4    …    1     4     18 2010/6/6    …    2     8     11 2010/7/3    …    1     8 2010/7/2    …    1     3     2 この内、年月で区切ったCN~CP列の個数を「Sheet4」上に出したいのです。 例えば、 ・A列が「2010年6月1日~30日」の期間内に ・CN~CP列で「1」が何個、「2」が何個…あるか 下記のように考えたのですが、エラーになりました。 =SUMPRODUCT((MONTH(Sheet3!A3:A15000)=6)*(Sheet3!CN3:CP15000,"1")) 初歩的な質問で申し訳ありません。何卒よろしくお願いいたします。

  • Excel2007の文字数カウント(半角0.5)

    Excel(エクセル)2007で、 ある1列のすべてのセル内の文字を「半角文字⇒0.5文字」、「全角文字⇒1文字」とカウントした場合の文字数表示をしたいのですが、方法がわかりません。 ----------------------------- たとえば、↓のように表示されるようにしたいです。 【A列 (文字)】     A1:いぬ A2:犬 A3:イヌ A4:dog ↓↓↓ 【B列 (文字数)】 B1:2 B2:1 B3:1 B4:1.5 ※「A3:イヌ」の"イヌ"は全角カタカナではなく半角カタカナなので、1(0.5×2)文字となります。 【補足】 ※極力、マクロとVBAを使わない方法を知りたいです。 ※マクロやVBAを使わなければ上記の条件を満たすカウントと文字数表示ができない場合、その方法やVBAソースが知りたいです。できれば、コマンドボタンを押すと文字数を表示する仕様にしたいです。 ※上記の【A列 (文字)】 の文字はあくまで例です。実際は、どんな文字や数字にも対応できる応用の利く仕様にしたいです。 ※上記の【A列 (文字)】が4行というのもあくまで例です。実際には、何行にでも対応できる仕様にしたいです(具体的には、時間はかかると思いますが10000行くらいまで対応できるのが理想です)。 ここまでの条件を満たす「文字数カウント」の方法、 もし分かる方がいましたらどうかよろしくおねがいします。

  • Accessでのカウント方法

    エクセルの場合で説明します。 A列は入荷、B列は出荷です。それぞれ、同じ日に複数回の入荷もしくは出荷があることもあれば、全くない日もあります。そこでD列以降のように、日別で入荷と出荷の回数をカウントしたいのです。 A列とB列のようなテーブルをアクセスで作り、クエリでD列以降のような結果を出す場合、どのようにすればいいのでしょうか?単純にカウントではできませんでした。→この場合はどちらかが主軸になるため、思ったような結果が出ません。 またエクセルのようなCountIfのような関数も内容なのですが・・・ 初歩的な質問かも知れませんがよろしくお願いします。

  • 文字列から数字をカウント

    エクセルバージョン2007 A列に以下の文字列が有る場合、数字の一塊のカウントではなく、文字列に入っています "0,1,2,3,4,5,6,7,8,9" それぞれをカウントする関数をご教授頂ければ幸いです。 12345-67890    → B列に 10 と表示 2aa-12345-00   → B列に 8 と表示 1bb        → B列に 1 と表示 以上、宜しくお願い致します。

  • エクセルでカウントしたい(至急お願いします)

    お世話になります。 エクセルのカウントについて教えてください。 A列に1行目から3000行目まである数字が入っています。 所々のセルに「不明」という文字が入ってます。 この「不明」がいくつあるかをカウントしたいのです。 A:3001に「不明」がいくつか表示するようにして、A1~A3000で 「不明」に数字を入れたとき、A:3001の「不明」の合計が変わる ようにしたいのですが、この関数を教えてください。 宜しくお願いします。

  • EXCEL、文字の数をカウントしたい。

    エクセル関数を使って、文字(100文字以上)の数をカウントしたいのですが、可能でしょうか。 例えば:セルに一つずつ、ABCAAACDを入力した場合に、A=4、B=1、C=2、D=1 のように表示したいんです。 ※Aを数える場合に、IF関数を使ってAのとき1となるように IF(A1="A",1)+IF(A2="A",1)+・・・+・・・のように順次足していけば短い文字であれば可能ですが、文字数が多くなってくると、セル内に関数がはいりきらずに計算できなくなります。別の関数をつかってより簡単に計算できないでしょうか?

  • エクセルで一致する数をカウントしたい

    エクセル2010、OSはWindoes7です。 エクセルでセルに入っている単語、文章で一致するものの数をカウントしたいです。 例1 A列に以下のような単語が入ってるとします A1 りんご A2 みかん A3 バナナ さて、A列の「リンゴ」という単語の数を数えたい場合、普通は以下のようにします。 =countif(A1:A3,"りんご") (引数2は、どこかのセルに入れた凡例を参照するもよし) こうすれば結果は1となります。 他の単語の場合も同様です。引数2を代えれば、どんな単語でも自在にできます。 では以下のような場合はどうすればいいでしょうか? 例2 A列に以下のような単語が入ってるとします A1 りんご A2 みかん A3 バナナ A4 りんご   みかん A5 いちご   りんご A6 さっちゃんはね、バナナが大好き 本当だよ (注 A4,A5はAlt+Enter入力で、セル内改行してある) この状態で、A列にある、「りんご」の数をカウントせよ、という関数命令を実行させると 解答が りんご= 3 となるような関数を知りたい。 同様に「みかん」 =3  「バナナ」=2 と返してくるような関数を知りたい。 ちなみに、例2に対してcountif関数を実行させると、結果は りんご 1 みかん 1 バナナ 1 となる。 なぜならcountif関数では、カウントする定義は「一文字目から最終文字まで、完全一致」となっているので・・・。 よろしくお願いします。

専門家に質問してみよう