• ベストアンサー

エクセルで一定範囲内に含まれる文字の数の数え方

エクセルで、一定の範囲内に含まれる数字や文字列の、ダブりを省いた個数を数える関数(またはやり方)というのはありますか? 何と表現してよいのか分からないため、質問文が分かりにくくなっていしまいますが、例えばある行なり列なりに 1 2 3 4 3 2 1 10 20 30 10 20 30 10 20 とあった場合、ここに出てくる数字は1,2,3,4,10,20,30の7種類なので「7」という具合にカウントできる方法を探してます。

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

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.4

もう一つの問題として「=SUMPRODUCT(1/COUNTIF(範囲,範囲))」 の場合 空白セルが入った時 エラーになります。それらを避けようと すると何らかの工夫が必要です。 文字列まで集計したい場合でも =COUNT(1/(MATCH(A1:A20,A1:A20,0)=ROW(A1:A20))) Ctrl + Shift + Enterで確定 のような形で計算すればいいです。この計算の場合 気を付けないとい けないのは 空白文字列の扱いくらいです。 はっきりいえるのは こういう時は ピボットテーブルの集計結果を数え た方が良いと思います。

Jun__K
質問者

お礼

丁寧な解説、ありがとうございます。 ピボットテーブルというものは知りませんでした。 仕事の中で、どちらかと言えばやってもやらなくてもいいという程度の必要度で、あるエクセルファイルに入力されている人名なり会社名なりの出現回数の分析をしてみたかったのですが、思っていたよりも手軽にはいかないようですね。

その他の回答 (3)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

> B2: {=SUM(1/COUNTIF(B4:B18,B4:B18))} このような方法は 以前から指摘していますが場合によって演算誤差が発生 します。計算後の値を何かに使う場合には丸めるなど 別途対応が必要です。 数値の種類数を数える時は =COUNT(1/FREQUENCY(A:A,A:A)) もしくは =SUM(IF(FREQUENCY(1:1,1:1),1)) のような方法をお勧めします。

noname#204879
noname#204879
回答No.2

添付図参照 B2: {=SUM(1/COUNTIF(B4:B18,B4:B18))} D10: {=SUM(1/COUNTIF(F10:T10,F10:T10))} 何れも配列数式です。

Jun__K
質問者

お礼

私が出した例を使って実演して下さった様ですが、確かにどちらも「7」と出てますね。 画像付きで分かりやすいご説明、ありがとうございます。

  • kkkkkm
  • ベストアンサー率65% (1623/2463)
回答No.1

以下のページに解説とともに方法が紹介されています。 Excel 関数で重複を除いてデータの件数を求める方法 http://software.ssri.co.jp/statweb2/tips/tips_14.html

Jun__K
質問者

お礼

ありがとうございます。 私の調べが足りないだけで、こういうことが一発でできる関数があるのかと思いましたが、 一筋縄ではいかないんですね。

関連するQ&A

  • Excelの関数

    Excelで、範囲指定した列に文字"○"があり、なおかつ文字"○"があった行の範囲指定した別の列に文字"△"があるセルの個数カウントをしたいのですが、その場合の関数がわかりません。 わかりづらい質問で申し訳ございませんが教えてください。 よろしくお願いいたします。

  • エクセルで文字列の個数を数える

    ある範囲のエクセルデータから決まった文字列の個数をカウントする関数の使い方が判れば教えてください。 例えば、A1からH200までのデータより、”リンゴ”という文字列が何個あるかカウントしたいのですが。 COUNTIF(A1:H200,"*リンゴ*")とすると”リンゴ”という文字列が含まれるセルの個数は出たのですが、”リンゴ”という文字列が複数含まれるセルもあるので、”リンゴ”という文字列の個数とは 一致しないようなのです。 どなたか、よろしくお願いします。

  • Excel関数で範囲指定し重複以外の値のカウント

    Excelの関数の使い方で教えていただけないかと思い、投稿しました。 お手数ですが、よろしくお願いします。 ある列の中で、限られた値の行を範囲として、別の列の値を調べて、カウントしたいと思っています。 カウントする値は、重複を除いた値の個数をカウントしたいと思います。 例えば、A列の1~100行までの範囲の中で、A列の101行目に入っている値である文字列の”鈴木”と同じ値がある行のB列の値をカウントしたいと思います。 そのB列のカウントを行う場合、重複する値があれば、1とカウントします。 以上の関数をB列の101行目に記載するとすれば、どのような関数になるのか教えていただければ幸いです。よろしくお願いいたします。

  • Excelで偶数行だけ文字列を数えたい。

    Excelで偶数行と,奇数行を別々に,文字列が入っている個数を数えたい場合の関数はどのようにすればいいのでしょうか。教えてください。

  • excel countif関数の動作について

    excelのcoutif関数を使用して300行ぐらいの文字列が入った列から特定の文字列の個数をカウントさせているのですがなぜかうまくヒットしてくれません。=countif(B4,$D$3:$D$303)と入力 して300行ぐらいコピーしたのですが、結果が”0”となってしまいます。ところが、カウントしている文字列がD3:D303の中にあることは目視で確認できます。exclのサーチコマンドでもヒットします。カウントする文字列とカウントされる文字列をif文で比較してみても同じものだと認識されるようです。何が原因でカウントされないのかよくわかりません。countif関数 を使用するうえで特定の条件があるのでしょうか?d3:d303のデータはソートしています。

  • エクセルで数を数えたいんですが

    各列に文字と数字があります。 あ 1 い 2 あ 1 う 1 ・ ・ ・ ・ ・ ・ この時文字が”あ”でしかも数字が”1”になるのは何パターンあるかをカウントしたいのですが、何かいい関数はありませんか? できれば詳しくお願いします。

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

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

  • Excel 関数でcountifの複数条件

    Excelで条件にあった個数をカウントする関数はcountifですが、 複数の条件にあった個数をカウントする場合、countifの式はどうすればよいのでしょうか。 例えば A列の1行から20行で"○"が入っている個数のカウントは =countif(a1:a20,"○")ですが A列の1行から20行で"○"が入っていて、なおかつ B列の1行から20行に"1"が入っている個数のカウントを知りたいです。 =countif(a1:a20,"○")and(b1:b20,"1")ではないですよね。 よろしくご教授願います。

  • EXCELで特定の範囲に存在する文字列をカウントする関数

    EXCELで特定の範囲に存在する文字列をカウントする関数は=COUNTA()で良いのですが、佐藤、鈴木、鈴木、佐藤、遠藤 と存在した場合に 5ではなく、3とカウントする関数はご存知ないでしょうか?

  • エクセルの印刷範囲について

    エクセル2010を使用しています。 毎日配送表を印刷しているのですが、印刷範囲を一定のルールに基づいて変えているのですが、マクロなどにより自動化できないかと思い質問させていただきました。 条件は下記の通りです。 (1)印刷範囲はA列からQ列まで (2)行は日によって変化する (3)B列には1~5999までの数字が打ち込まれており、日によって「3999」まで「4999」までと変動あり (4)変動する最後の数字の行まで、A~Q列全てに情報が打ち込まれているが、それ以降の行、列ともに空白の状態 個人的にはB列の数字を基準として「B列が<5999」までの範囲を「A~Q列まで」選択 といったようにできればイメージに近いものになるのかなぁと思っていますが、力不足でどうすればよいのか分かりません。 どなたか助けていただけないでしょうか??

専門家に質問してみよう