• ベストアンサー

エクセルの条件を付けたカウントがわかりません…

最近エクセルを手探りで使い始めた初心者です。 お世話になります。 現在仕事でアンケートの集計を行っているのですが、 たとえばA列の1~5行目のセルに a ab abc ac a とそれぞれ入力されている場合、 「aを含みかつbを含まないセル」がいくつあるかを関数で数えるには どうすればよいのでしょうか。 自分でも探してはみたのですが見つからず… お時間ある方で結構ですのでご回答いただけると助かります。 よろしくお願いします。

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

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

ご利用のエクセルのバージョンがご相談に書かれていませんので、エクセル2007以降を使って =COUNTIFS(A:A,"*a*",A:A,"<>*b*") のように計算する事ができます。

sevasuchan
質問者

お礼

ご回答ありがとうございました。 バージョン情報を書くのを失念しておりまして、 申し訳ありませんでした。 おかげさまで作業もはかどりました。 助かります。

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>「aを含みかつbを含まないセル」がいくつあるかを関数で数えるにはどうすればよいのでしょうか。 幾つかの方法があります。 文字列の中に特定の文字が含まれるか否かはFIND関数でチェックできます。 =FIND("a",A1:A5) → {1;1;1;1;1} =ISERR(FIND("b",A1:A5))*1 → {1;0;0;1;1} ={1;1;1;1;1}*{1;0;0;1;1} → {1;0;0;1;1} 上記の手順で得られた配列値を合計すれば求める値になります。 =SUM(FIND("a",A1:A5)*ISERR(FIND("b",A1:A5))) SUM関数の引数が配列値にしなければならないので入力後Ctrl+Shift+Enterで確定します。 別解 =SUMPRODUCT(FIND("a",A1:A5)*1,ISERR(FIND("b",A1:A5))*1)          ↓        簡略化          ↓ =SUMPRODUCT(FIND("a",A1:A5)*ISERR(FIND("b",A1:A5)))

sevasuchan
質問者

お礼

おお、構造までご説明くださりありがとうございます。 さまざまやり方があるようで、 勉強の余地が多いですね。 ありがとうございました。

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

以下のような数式でカウントできます。 =SUMPRODUCT(ISNUMBER(FIND("a",A1:A5))*ISERROR(FIND("b",A1:A5)))

sevasuchan
質問者

お礼

ご回答ありがとうございます。 COUNT系以外でもこんな関数があるんですね。 勉強になります。

関連するQ&A