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

解決済みの質問

Excelで1セルの中の特定の字の数を数えたい

アンケートをしてある問の回答が、選択肢は5つあり、結果が、
Aさんの答えは、アイウエオ Bさんの答えは、イエオ Cさんの答えは、アエ Dさんの答えは、イ とします。
これをExcelで
アは2個 イは3個 ウは1個 エは3個 オは2個
と自動で調べたいのです。可能でしょうか?
答えはそれぞれ1セルの中に入力されています。
答えが一つのものはDCOUNT関数で処理できましたが、複数回答はどうすればいいのでしょうか?

投稿日時 - 2012-11-06 14:20:24

QNo.7784493

困ってます

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

何度もごめんなさい。

前回の数式で不要なものがありました。
F2セルの数式を
=SUMPRODUCT(($B$1:$B$100=F$1)*(ISNUMBER(FIND($E2,$C$1:$C$100))))

訂正してください。

※ 前回の数式でも問題ないのですが、今回は条件が二つなので、「*1」は必要ありません。
前回は条件が一つだったのであのような数式にしました。

何度も失礼しました。m(_ _)m

投稿日時 - 2012-11-06 22:06:15

お礼

完璧です。もし自分で調べていたらどれぐらいの時間がかかったことか・・・深く最後までお付き合いいただき感謝、感謝です。本当に楽になりました。

投稿日時 - 2012-11-07 10:25:59

ANo.7

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

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

回答(8)

既に多くのご回答でも示されているとおり、様々な数式で計算できます。ですが私からは、それらとはちょっと違うけれど、お勧めな方法を。


(1)
A ~ D さんの回答を縦 1 列に並べます。

(2)
それら回答のセル範囲全体、あるいは列全体を選択。ただし 1 列のみとします。

(3)
選択した状態で、リボン「データ」の「区切り位置」ウィザードを起動(1 列ずつしか処理できません)。「スペースによって…」を選択して「次へ」。

(4)
表示されるプレビューで文字と文字、あるいは数字と数字の間の位置をクリック。縦線が入ります。入れた線はドラッグ・アンド・ドロップで左右に動かしたり、ダブルクリックで消すこともできます。必要な線を全部入れたら、「完了」。

(5)
例えば次式を入力すると、「ア」の個数を数えます。

H1 ア
I1 =countif($B$1:$F$4,h1)


!注意!

「区切り位置」によりデータは複数の列に分割されますが、処理するデータの右のほうの列に先に入力されているデータが分割の際に上書きされるような位置の場合は、ウィザードの完了時に、上書きしてもよいか警告が出ます。始めからそうならないようなセルの配置にしてから、分割を実行しましょう。

投稿日時 - 2012-11-07 01:00:44

お礼

(4)のワザはすっかり忘れていました。遅くご回答頂きありがとうございます。

投稿日時 - 2012-11-07 10:27:21

ANo.6

No.2・5です!

男女別の集計したい!というコトですので・・・

というコトは元データに性別の項目がある訳ですよね?
具体的な配置が判らないので、かってに↓のような感じでやってみました。

B列の「1」が男性・「2」が女性としています。

F2セルに
=SUMPRODUCT(($B$1:$B$100=F$1)*(ISNUMBER(FIND($E2,$C$1:$C$100))*1))
という数式を入れオートフィルで列方向・行方向にコピーすると
画像のような感じになります。

数式は実際のデータ配置に合わせてください。

※ SUMPRODUCT関数に条件を一つ加えただけです。
これで何とかご希望通りにならないでしょうか?m(_ _)m

投稿日時 - 2012-11-06 21:59:46

ANo.5

No.2です¥

補足の
>123と数字を使用するとどうなりますでしょうか
に関して・・・

前回同様の配置だとします。
(前回のア~オの代わりに、D列には1~5の数値が入っているとします)

D1セルに
=SUMPRODUCT((ISNUMBER(FIND(D2,$B$1:$B$100)))*1)
という数式を入れオートフィルで下へコピーしてみてください。

とりあえず100行まで対応できる数式にしています。
SUMPRODUCT関数は配列数式になりますので、
極端にデータ量が多い場合はPCに負担をかけてしまいます。

※ 1000行程度であれば問題ないと思います。m(_ _)m

投稿日時 - 2012-11-06 18:17:15

お礼

速やかな回答をありがとうございます。すっかり助かりました。$をついている意味もわかりました。特に所有しているExcelがXLS形式なので助かりました。今回、男を1、女を2で最初にソートしてから、教えていただいた関数で処理をしました。もしお手数でなければですけど、ソートを省くことってできませんでしょうか?「男で回答に1を含むモノ」というふうに。次回のときに手間が助かります。新しいExcelなら対応の関数があるそうですが、簡単にはできないのでしょうか?

投稿日時 - 2012-11-06 21:23:30

ANo.4

最近、FIND関数に目覚めた私からも提案を一件。

右側に「回答を分解する」つもりでア~オの表を作っておきます。
右表に表題にもア~オを用意しておいて、D3セルに
  =IF(ISERROR(FIND(D$2,$B3)),"×","○")
として、右表の空欄にフィルします。
FIND関数でB3セルの中にD2セル(ア)があるかどうかを調べます。
対象に検索文字が無ければエラーが返る事を利用して、
IF関数とISERROR関数を噛ませることで、
「FINDの結果がエラー(含まれていない)だったら"×"、
 FINDの結果がエラーじゃなかったら"○"を返す」ように設定します。
あとは、各列でCOUNTIFを使って"○"の数を数えればOkです。

ちなみに下段は、
  =IF(ISERROR(FIND(D$11,$B12)),0,1)
として、無かったら0(ゼロ)・有ったら1を返すようにして、
集計はSUMに任せてしまうやり方です。



図にはしませんでしたが、
  =IF(ISERROR(FIND(D$2,$B3)),"",D$2)
として、無かったら空白・有ったら「選択肢(ア~オ)」を返すようにするのもアリかもですね。



一応、参考までに。

投稿日時 - 2012-11-06 15:39:33

補足

ここまで詳しければ鬼に金棒ですね。貴重な時間を割いていただき、丁寧な説明をありがとうございます。また困っている私のような方を助けて下さい。

投稿日時 - 2012-11-06 17:06:15

添付図参照
B2: =LEN($A2)-LEN(SUBSTITUTE($A2,B$1,""))

投稿日時 - 2012-11-06 15:07:52

補足

このような方法があるとは夢にも思いませんでした。困ったときには是非に使ってみたいと思います。ありがとうございます。

投稿日時 - 2012-11-06 17:04:48

ANo.2

こんにちは!
配置が判らないので、↓の画像の配置だとして・・・
やり方だけ!

D列には回答選択肢が入力してあるとします。

E2セルに
=COUNTIF(B:B,"*"&D2&"*")
という数式を入れオートフィルで下へコピーで
画像のような感じになります。m(_ _)m

投稿日時 - 2012-11-06 14:52:19

補足

画像まで入れていあだき、ありがとうございます。アイウなどの文字の代わりに123と数字を使用するとどうなりますでしょうか?重ねてお答え頂けると助かります。文字列に指定しても無理でした。

投稿日時 - 2012-11-06 17:03:53

ANo.1

例えばA2セルから下方に氏名が有り、B2セルから下方にはア、イ、ウなどの文字が単独あるいは複数で入っているセルが有るとします。
そこで例えばそれらの数を求めるための表をD、E列に作るとしてD2セルにはア、D3セルにはイ、D4セルにはウ…などと下方に入力します。その後にE2セルには次の式を入力して下方にドラッグします。

=IF(D2="","",COUNTIF(B:B,"*"&D2&"*"))

投稿日時 - 2012-11-06 14:49:57

補足

ありがとうございます。アイウなどの文字の代わりに123と数字を使用するとどうなりますでしょうか?重ねてお答え頂けると助かります。文字列に指定しても無理でした。

投稿日時 - 2012-11-06 17:03:06

あなたにオススメの質問