- ベストアンサー
エクセルでアンケート集計したいので、関数・マクロを教えてください!
宜しくお願い申し上げます。エクセルでアンケート用紙を作りました。セルh3~h35までに各問いの答えが「数字(1~5)」で入っています。約300人分で、各々ankt1~ankt300と名前を付けてエクセルファイルで保存してあります。それからh3に1は何人?h3に2は何人?・・・h35に4は何人?h35に5は何人?と集計したいのです。エクセルの関数・マクロで出来る方法がありましたら、どうぞご教示下さい!≦(._.)≧
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- cistronezk
- ベストアンサー率38% (120/309)
私も回答2の方の意見に同意します。 1アンケート1行として1シートにまとめておけば、あとの集計は関数でもピボットテーブルでも使っていろいろできます。 1シートにまとめるマクロとしては、以下が一例です。 Option Explicit Sub Macro1() Dim i As Integer For i = 1 To 300 'ankファイルを開く Workbooks.Open Filename:="<アンケートのあるフォルダへのパス>\ank" & i & ".xls" 'C3:C35の範囲をコピー ActiveSheet.Range("C3:C35").Copy '値、行列の入れ替えのオプションを選択して集計シートへ貼り付け。 ThisWorkbook.Worksheets(1).Range("A" & i).PasteSpecial Paste:=xlPasteValues, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=True 'ankファイルを閉じる ActiveWorkbook.Saved = True ActiveWorkbook.Close Next i End Sub 必要ならば、性別、年齢、職業などの属性も取り出しておけば、分析に役立つはずです。
お礼
お忙しい中、早速の回答、誠にありがとうございました。≦(._.)≧
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
300シート分の回答があるってことですよね? 私なら適当な手段を用いて以下のようにフォーマット変換したシートを作ってから作業します。 ・1人1行でA列~AF列まで回答の数字が入っている ・300人なので300行ある あとはcountif関数でA列、B列、C列‥‥AF列まで各々の列にどの回答がいくつあるか数える。 1シートにするには私なら適当なマクロを組むか外部プログラムを作って処理しちゃいますが、手作業でやるなら ・H3~H35を選択してコピー ・貼り付け先を選択して編集→形式を選択して貼り付け→行列を入れ替えるにチェック ・300回 で可能です。
お礼
お忙しい中、早速の回答、誠にありがとうございました。≦(._.)≧
- tttry
- ベストアンサー率38% (44/114)
セルH3に数字が入っているなら、例えば、 J3のセルに、=if(H3=1,1,0) K3のセルに、=if(H3=2,1,0) L3のセルに、=if(H3=3,1,0) M3のセルに、=if(H3=4,1,0) N3のセルに、=if(H3=5,1,0) と関数を入れて、それぞれ、35行までコピーをすれば、1人の人が何をアンケートで選択したかがわかりますよね。 それぞれ、anakt1からankt300まで作成してから、集計をして見たらどうでしょうか? 一番は、anakt1からankt300を一つのワークシートにデータを入れて、先ほどの関数を使えば良いと思います。 私ならそうします。
お礼
お忙しい中、早速の回答、誠にありがとうございました。≦(._.)≧
お礼
お忙しい中、早速の画像付きの回答、誠にありがとうございました。≦(._.)≧