みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

エクセル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関数では、カウントする定義は「一文字目から最終文字まで、完全一致」となっているので・・・。


よろしくお願いします。

投稿日時 - 2012-07-26 20:52:49

QNo.7612265

すぐに回答ほしいです

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

=countif(A$1:A$8,"*りんご*")

「ワイルドカード」という言葉をインターネットで検索してください。なおこの式では、1つのセルの中に「りんご」が複数存在しても、そのセルを「1」と数えます。

投稿日時 - 2012-07-26 21:15:56

お礼

ご回答ありがとうございます。
これがベストです。

投稿日時 - 2012-07-27 03:56:11

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

何をやりたいのか良く判らない。
文章を検索して単語の出現数をカウントしたい(だけ)?
単語と文章のシートは分けるべき。
シートその1:単語のリスト
シートその2:文章のコレクション(シート名:「文章」)

単語のリストの右隣、
B2に、

=IF($A2="","",COUNTIF(文章!$A$2:$A$1000,"*"&$A2&"*"))

以下、コピー(単語リストのMAXと相談して好きなだけ)

投稿日時 - 2012-07-26 22:53:20

お礼

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

投稿日時 - 2012-07-27 03:57:23

No.2です。一つ言い忘れました。セル参照とワイルドカード文字を組み合わせたい場合は、次式のように、つなげてください。

=countif(A$1:A$8,"*"&c1&"*")

※C1セルに「りんご」などが入力されている場合。絶対参照の「$」は適当にくっつけてください。

投稿日時 - 2012-07-26 21:23:15

お礼

ご回答ありがとうございます。
さらなるご説明、ありがとうございます。

投稿日時 - 2012-07-27 03:56:54

ANo.1

関数では…一発で答えを出すには配列関数を使うしかないでしょう。

 検索したい文字が含まれるかをB列に返す
 B列の結果を数える。

FIND関数を使うことになりますね。
  =FIND("りんご",A1,1)
結果を数えるのはCOUNT関数かCOUNTIF関数になると思います。
エラーを無視して数値をカウントできれば、COUNT関数のほうが楽。

…この一連の操作を配列関数で組めば良いんですけどね。
ですが手元にExcelを扱える環境がないので確かめることができません。
作業列としてB列などを使うなら、これでも十分対応できると思います。
余力があれば配列関数にチャレンジしても良いでしょう。

ってことでアドバイスでした。

投稿日時 - 2012-07-26 21:12:28

お礼

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

投稿日時 - 2012-07-27 03:55:37

あなたにオススメの質問