[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『一つのセルに複数回答があった場合のカウント方法について』(りんご)
すみません。教えてください。
ちょっとつまずいておりまして、、
設問は下記のような感じです。
好きな果物(複数回答)
男女 10代20代30代 リンゴ もも ぶどう.......
12 1 2 3 1 2 3
回答で出てくるエクセルデータは↓こんな感じです。数字は○数字です
COUNTIFでいけるかと思ったのですがうまくいかず、
SUMPRODUCTでいけるかと思ったのですが複数の場合集計からはじかれてしまいます。
A列 B列 C列
1 2 1 2
2 1 2 3
1 3 2
集計したいのでどなたか数式を教えてください。
< 使用 Excel:Excel2010、使用 OS:WindowsXP >
1つだけ有効にしたいならば、Left関数でも使って、1文字だけを対象にすればよろしいかと。
複数全て有効(つまり複数人としてカウント)にしたい場合、まずオートフィルタをかけます。
そしてC列の選択肢から複数のものだけ選択して表示。出てきた行を範囲コピーし、行末に貼付。
数は少ないと思いますので、後はC列の値を編集していきましょう。
元データは直したくないが複数カウントしたい場合、一致で見るのではなく、Find関数等で数字が含まれていたらカウント、とか。
(???) 2016/05/31(火) 15:53
複数人すべて有効としてカウントしたいのです。
人数は1万件分のデータを想定しています。
2/3の人が2つの果物を好きな場合集計合計数字は1万6千になるかと思います。
この複数回答というものが10件程度あり(選択項目が10以上にわたるものもあります。)
年代別・男女別でデータ化し、図・グラフへと落とし込みたいと考えています。
(りんご) 2016/05/31(火) 16:16
○囲み数字なら
=COUNTIF(範囲,"*○*")
で、カウントできるんでないの? (GobGob) 2016/05/31(火) 16:32
男女別かつ 年代別かつ 好きな果物の集計にしたいのです。
「男性」かつ「40歳代」で「もも」が好きな人
=COUNTIF(B2:B10001,"*?@*")+COUNTIF(C2:C10001,"*?C*")+COUNTIF(D2:D10001,"*?A*")
「男性」かつ「40歳代」で「もも」と「イチゴ」が好きな場合はどうしたらよいですか?
列が崩れてしまって見にくいと思うのですが、エクセルイメージは下記のとおり集計できればと思っています。
10代 20代 30代 40代 50代 60代 70代 80代 男女別 計 男 女 男 女 男 女 男 女 男 女 男 女 男 女 男 女 男 女 全体 りんご 53人 45人 33人 62人 21人 53人 45人 33人 62人 21人 33人 62人 21人 33人 45人 33人 313人 342人 655人 もも 183人 123人 42人 48人 48人 124人 123人 42人 48人 48人 42人 48人 48人 42人 123人 42人 657人 517人 1,174人 ぶどう 120人 25人 180人 110人 95人 101人 25人 124人 110人 95人 180人 110人 95人 180人 25人 180人 830人 925人 1,755人 なし 30人 21人 12人 12人 56人 30人 21人 12人 12人 21人 12人 12人 21人 12人 21人 12人 185人 132人 317人 キウイ 21人 30人 56人 25人 68人 21人 30人 56人 25人 25人 56人 25人 25人 56人 30人 56人 311人 294人 605人 イチゴ 95人 210人 111人 125人 120人 110人 142人 124人 210人 120人 121人 210人 120人 121人 112人 105人 1,031人 1,125人 2,156人
To りんご さん
回答ではありません。
レスは、編集で付け加えるのではなく、下のコメント欄に記述してアップしてくださいね。
(β) 2016/05/31(火) 18:10
COUNTIFの使い方が間違っているのかもしれないのですが、下記数式ですと3番目の「好きな果物」しかカウントしてきてくれないようなのです。
男女別かつ 年代別かつ 好きな果物の集計にしたいのです。
(ちなみに( )内数字は○数字です)
「男性」かつ「40歳代」で「もも」が好きな人
=COUNTIF(B2:B10001,"*1*")+COUNTIF(C2:C10001,"*4*")+COUNTIF(D2:D10001,"*2*")
「男性」かつ「40歳代」で「もも」と「イチゴ」が好きな場合はどうしたらよいですか?
列が崩れてしまって見にくいと思うのですが、エクセルイメージは下記のとおり集計できればと思っています。
10代 20代 30代 40代 50代 60代 70代 80代 男女別 計 男 女 男 女 男 女 男 女 男 女 男 女 男 女 男 女 男 女 全体 りんご 53人 45人 33人 62人 21人 53人 45人 33人 62人 21人 33人 62人 21人 33人 45人 33人 313人 342人 655人 もも 183人 123人 42人 48人 48人 124人 123人 42人 48人 48人 42人 48人 48人 42人 123人 42人 657人 517人 1,174人 ぶどう 120人 25人 180人 110人 95人 101人 25人 124人 110人 95人 180人 110人 95人 180人 25人 180人 830人 925人 1,755人 なし 30人 21人 12人 12人 56人 30人 21人 12人 12人 21人 12人 12人 21人 12人 21人 12人 185人 132人 317人 キウイ 21人 30人 56人 25人 68人 21人 30人 56人 25人 25人 56人 25人 25人 56人 30人 56人 311人 294人 605人 イチゴ 95人 210人 111人 125人 120人 110人 142人 124人 210人 120人 121人 210人 120人 121人 112人 105人 1,031人 1,125人 2,156人
(りんご) 2016/05/31(火) 18:19
> 男女別かつ 年代別かつ 好きな果物の集計にしたいのです。
↑ こういうのは COUNTIF じゃなく COUNTIFS
それと、一つのセルに複数の数字が入るのは「好きな果物」(C列?)だけでしょ? 性別や年代のところにワイルドカード「*」をつける必要なんかないですよ。
あと、数式に直接丸数字を書いてたら、セル一つ一つ直していくことになるのでは? セル参照にした方がいいです。
↓ あくまで例ですが(A列・・性別、B列・・年代、C列・・好きな果物) 1行目・・年代、2行目・・性別 ※( )の数字は丸数字に読み替え
E F G H I 1 (1) (2) 2 (1) (2) (1) (2) 3 (1) 1 0 1 1 4 (2) 1 0 1 1 5 (3) 1 0 1 1
F3 =COUNTIFS($A$2:$A$100,F$2,$B$2:$B$100,F$1,$C$2:$C$100,"*"&$E3&"*") G3 =COUNTIFS($A$2:$A$100,G$2,$B$2:$B$100,F$1,$C$2:$C$100,"*"&$E3&"*")
F3とG3を選択して右と下にコピー
E列と1〜2行目の表示は表示形式で変えるなりなんなり。 例)F1セルの表示形式〜ユーザー定義 ;;;"10代"
データ件数がけっこう多いので数式が重くなるかもしれないけど、 それはそちらで確認してください。 (笑) 2016/05/31(火) 18:34
集計表の1行目、男女どちらにも年代を入れておけば
E F G H I 1 (1) (1) (2) (2) 2 (1) (2) (1) (2) 3 (1) 1 0 1 1 4 (2) 1 0 1 1 5 (3) 1 0 1 1
F3 =COUNTIFS($A$2:$A$100,F$2,$B$2:$B$100,F$1,$C$2:$C$100,"*"&$E3&"*")
これを右と下にコピー
参考まで。 (笑) 2016/05/31(火) 18:43
男性かつ 20代かつ2を選んだ場合の数式
=COUNTIFS($B$2:$B$10001,B$1,$C$2:$C$10001,C$1,$K$2:$K$10001,"*"&2&"*")
ちなみにこのように落とし込まれたデータを引っ張っていきたいのです。
A列 B列 C列 D列
1行目 対象者 男女 年代 設問1
2行目 1 1 3 2 3 5
3行目 2 2 2 1 2 3
4行目 3 1 1 3
5行目 4 2 3 4 6
6行目 5 1 2 5
(りんご) 2016/05/31(火) 19:56
'Sheets("回答")のA列1行目から下に性別(?@?A)をセット 'Sheets("回答")のB列1行目から下に年代(?@?A?B?C?D?E?F?G)をセット 'Sheets("回答")のC列1行目から下に果物名(?@?A?B?C?D?E)をセット 'Sheets("集計")に集計する Dim dt(2, 8, 6) As Long, c As Range, x1 As Integer, x2 As Integer, x3 As Integer For Each c In Sheets("回答").UsedRange.Columns("A").Cells For i = 1 To Len(c.Offset(, 2).Value) dt(sconv(c.Value), sconv(c.Offset(, 1).Value), sconv(Mid(c.Offset(, 2).Value, i, 1))) = 1 + Val(dt(sconv(c.Value), sconv(c.Offset(, 1).Value), sconv(Mid(c.Offset(, 2).Value, i, 1)))) Next i Next c With Sheets("集計") .Cells.ClearContents .Range("A3").Resize(6) = Application.WorksheetFunction.Transpose(Array(1, 2, 3, 4, 5, 6)) .Range("B1").Resize(, 16) = Array(1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8) .Range("B2").Resize(, 16) = Array(1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2) For Each c In .Range("B3:Q8") x1 = .Cells(2, c.Column).Value x2 = .Cells(1, c.Column).Value x3 = .Cells(c.Row, 1).Value c.Value = dt(x1, x2, x3) Next c .Range("A3").Resize(6) = Application.WorksheetFunction.Transpose(Array("りんご", "もも", "ぶどう", "なし", "キウイ", "イチゴ")) .Range("B1").Resize(, 16) = Array("十代", "", "二十代", "", "三十代", "", "四十台", "", "五十代", "", "六十代", "", "七十代", "", "八十代", "") .Range("B2").Resize(, 16) = Array("男", "女", "男", "女", "男", "女", "男", "女", "男", "女", "男", "女", "男", "女", "男", "女") End With End Sub Function sconv(arg As String) As Integer sconv = Array(1, 2, 3, 4, 5, 6, 7, 8)(InStr(1, "?@?A?B?C?D?E?F?G", arg, 1) - 1) End Function (mm) 2016/06/01(水) 09:52
> =COUNTIFS($B$2:$B$10001,B$1,$C$2:$C$10001,C$1,$K$2:$K$10001,"*"&2&"*")
B$1 て「男女」? C$1 て「年代」? なんでB列とC列の検索条件がこんなものになるんですかね?
いきなり「K列」なんか出てきましたけど、何ですか、K列って?
"*"&2&"*" ← をセル参照にしないのはなぜ? ↓ が集計表だってことはわかってます?(「1」とか「0」は関係ないので無視してくださいよ)
> E F G H I > 1 (1) (1) (2) (2) > 2 (1) (2) (1) (2) > 3 (1) 1 0 1 1 > 4 (2) 1 0 1 1 > 5 (3) 1 0 1 1 実際の集計表がどこにあるのか知りませんが、COUNTIFS の検索条件はその集計表の丸数字のセル番地にするんです。 言ってることがわからなかったら実際の集計表がどこにあるのか書いてください。
もう見てないような気もするけど。 (笑) 2016/06/01(水) 14:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.