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

このQ&Aのポイント
  • エクセルでセルに入っている単語、文章で一致するものの数をカウントしたいです。
  • 例1のように一致する単語の数を数える方法は簡単ですが、例2のようにセル内改行がある場合はどうすればよいか悩んでいます。
  • countif関数では、一文字目から最終文字まで完全一致する場合にのみカウントされるため、例2のような場合では正確な結果が得られません。特定の単語を部分一致でカウントする方法をご教示ください。
回答を見る
  • ベストアンサー

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

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

  • s_end
  • お礼率95% (6183/6488)

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

  • ベストアンサー
回答No.2

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

s_end
質問者

お礼

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

その他の回答 (3)

回答No.4

何をやりたいのか良く判らない。 文章を検索して単語の出現数をカウントしたい(だけ)? 単語と文章のシートは分けるべき。 シートその1:単語のリスト シートその2:文章のコレクション(シート名:「文章」) 単語のリストの右隣、 B2に、 =IF($A2="","",COUNTIF(文章!$A$2:$A$1000,"*"&$A2&"*")) 以下、コピー(単語リストのMAXと相談して好きなだけ)

s_end
質問者

お礼

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

回答No.3

No.2です。一つ言い忘れました。セル参照とワイルドカード文字を組み合わせたい場合は、次式のように、つなげてください。 =countif(A$1:A$8,"*"&c1&"*") ※C1セルに「りんご」などが入力されている場合。絶対参照の「$」は適当にくっつけてください。

s_end
質問者

お礼

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

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

関数では…一発で答えを出すには配列関数を使うしかないでしょう。  検索したい文字が含まれるかをB列に返す  B列の結果を数える。 FIND関数を使うことになりますね。   =FIND("りんご",A1,1) 結果を数えるのはCOUNT関数かCOUNTIF関数になると思います。 エラーを無視して数値をカウントできれば、COUNT関数のほうが楽。 …この一連の操作を配列関数で組めば良いんですけどね。 ですが手元にExcelを扱える環境がないので確かめることができません。 作業列としてB列などを使うなら、これでも十分対応できると思います。 余力があれば配列関数にチャレンジしても良いでしょう。 ってことでアドバイスでした。

s_end
質問者

お礼

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

関連するQ&A

  • EXCELでのカウント

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

  • エクセルのセル内の重複文字列処理について

    よろしくお願いいたします。 セル内にスペースで区切られた文字列(単語)があり、文字列の数は不確定です。 その文字列の中で重複する文字列があり、それらを1つにまとめたいという要望です。 セルの行数は約6000ほどあります。 例 A1セル:リンゴ リンゴ みかん B1セル:リンゴ みかん A2セル:みかん バナナ みかん バナナ みかん B2セル:みかん バナナ ・・・ よろしくお願いいたします。 Windows7 HomePremium Office2010

  • Excel カウント

    以下のような表があったとき、バナナ、りんご、みかんのそれぞれの総数をカウントするにはどうしたら良いでしょうか。 (1) バナナ 2 りんご 4 みかん 4 (2) バナナ 2 りんご 2 みかん 6 (3) バナナ 1 りんご 3 みかん 5 バナナ ? りんご ? みかん ?

  • エクセルにて条件一致をカウントさせる

    <データ>  セルA セルB 1  qqq   www 2  hhh   uuu 3  mmm   ooo 以下続く   <条件>  <結果>  セルD セルE 1  qqq    www     1 2  qqq    ttt      0 使用関数 countif(A:B,D1:E1)        ↑       複数では出来ない 上の様な感じでセルA、Bにそれぞれ文字列(複数)が入っていて条件に当てはまる場合(セルD,Eと一致する場合) にカウントさせたいのですがカウントできません。 良い方法はないでしょうか?

  • Excelのカウントがうまくいきません。

    Excel初心者です。 添付画像のような例の場合のカウントがうまくいかず困っています。 Excelに詳しい方、どうかご教示いただけますようお願い致します。 カウントしたい条件は下記の通りです。 (1)A1~A5の範囲で数値の入っているセルをカウントする。  ⇒今回の例ではA1とA3とA4がカウントの対象。 (2)B1~B5の範囲で「みかん」「りんご」「柿」の  いずれかの単語が入力されているセルをカウントする。  ただし、A1~A5のセルが空白の場合のみ、  これらの単語が入力されているセルをカウントする。  ⇒今回の例ではB2とB5がカウントの対象。  尚且つ、ひとつのセルに複数の単語が入力されている場合は、  単語の数に関わらず、カウントを1とする。  ⇒今回の例ではB5がカウントの対象。 以上の条件を満たす合計をB7に求める数式を悩んでおり、 今回の例ならば、B7の合計は5となるはずなのですが、 なかなかうまくいきません。 どうぞ宜しくお願い致します。

  • VBA 別シートにカウントした結果を表示したい

    VBA初心者です。 シート1で指定した単語をシート2にカウントした数を表示させたいです。 シート1のA列に100種類近い単語が縦に並んでいます。(重複している) 「りんご」「バナナ」「メロン」様々な単語があるとします。 シート2にはA列を横にした「りんご」「バナナ」「メロン」が並んでいます。(重複削除している) そのりんごなどの下に、リンゴがいくつか、バナナがいくつかをシート1からカウントした結果の数字を入れたいです。 今のところ、COUNTIFで単語を指定しているのですが、文言が増える可能性もあります。何かほかに案がありますでしょうか。 よろしくお願いいたします。

  • EXCEL 複数列条件に一致する行を数えるには

    添付画像のデータのB2:E17中で項目α~θが完全一致する都道府県の数をF列の「件数」に表示出来る関数はありますか? 添付画像だと 岩手と山梨:りんご・バナナ・みかんで一致→2 山形と千葉:りんご・みかん・みかんで一致→2 栃木と東京:バナナ・みかん・りんごで一致→2 それ以外は1という感じです。 宜しくお願いします。

  • エクセルでカウントした数を特定のセルに入力したい

    エクセルの関数について質問させてください。 A列  B列   C列 8/9       リンゴ 8/10      ミカン 8/11      リンゴ 8/12      ブドウ 8/13      ミカン 8/14      リンゴ 8/15      ブドウ 上記のような表で、C列でカウントしたリンゴの数を 前日の日付の行の、B列に入力したいのです。 ※今が8/10だとすると、リンゴの数「3」を  8/9の行のB列の欄に入力したい。 COUNTやCOUNTIFSで色々試してみたのですが、 どうしてもうまくいきません。 どうぞ宜しくお願いします。

  • 【Excel】部分一致の逆引きの方法について

    初めまして。Excelの部分一致のデータ抽出について質問です。 A列    B列       C列 2 リンゴ  リンゴが美味しい  1 3 バナナ  おなかがすいた  0 4 パパイア ミカンの皮をむけ  1 5 ミカン  バナナが好き    1 6 チェリー 草履を履く    0 7 イチゴ  遊びたい      0 上記のようにBの各行にA列のいずれかの単語が含まれていた場合にC列に「1」含まれない場合に「0」と記述する関数をご教授頂けると本当に助かります。 3時間調べたのですがどうしてもA2の単語がB列の中で何個含まれているかの関数しか見つけることができませんでした。何卒よろしくお願い致します。

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

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

専門家に質問してみよう