dポイントプレゼントキャンペーン実施中!

宜しくお願い申し上げます。エクセルでアンケート用紙を作りました。セルh3~h35までに各問いの答えが「数字(1~5)」で入っています。約300人分で、各々ankt1~ankt300と名前を付けてエクセルファイルで保存してあります。それからh3に1は何人?h3に2は何人?・・・h35に4は何人?h35に5は何人?と集計したいのです。エクセルの関数・マクロで出来る方法がありましたら、どうぞご教示下さい!≦(._.)≧

A 回答 (4件)

1例です。


別添資料を使い説明します。

A列  B列
問題  回答
A   5
B   3
C   2
D   1
E   3

上記のアンケートを添付のように追加。
次に、表を問題、回答のほかに集計の表を作る。
集計の表は、回答をコピーしたもので、項目を変えただけの物です。
そして、ピボットテーブルで集計を行う。

行に 問題
列に 集計
データ 回答(集計方法は、データの個数)

添付のように集計ができます。
数個のデータで試してみてはいかがでしょうか。
「エクセルでアンケート集計したいので、関数」の回答画像3
    • good
    • 0
この回答へのお礼

お忙しい中、早速の画像付きの回答、誠にありがとうございました。≦(._.)≧

お礼日時:2009/10/23 11:34

私も回答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

必要ならば、性別、年齢、職業などの属性も取り出しておけば、分析に役立つはずです。
    • good
    • 0
この回答へのお礼

お忙しい中、早速の回答、誠にありがとうございました。≦(._.)≧

お礼日時:2009/10/26 07:35

300シート分の回答があるってことですよね?


私なら適当な手段を用いて以下のようにフォーマット変換したシートを作ってから作業します。
・1人1行でA列~AF列まで回答の数字が入っている
・300人なので300行ある
あとはcountif関数でA列、B列、C列‥‥AF列まで各々の列にどの回答がいくつあるか数える。

1シートにするには私なら適当なマクロを組むか外部プログラムを作って処理しちゃいますが、手作業でやるなら
・H3~H35を選択してコピー
・貼り付け先を選択して編集→形式を選択して貼り付け→行列を入れ替えるにチェック
・300回
で可能です。
    • good
    • 0
この回答へのお礼

お忙しい中、早速の回答、誠にありがとうございました。≦(._.)≧

お礼日時:2009/10/23 11:34

セル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を一つのワークシートにデータを入れて、先ほどの関数を使えば良いと思います。

私ならそうします。
    • good
    • 1
この回答へのお礼

お忙しい中、早速の回答、誠にありがとうございました。≦(._.)≧

お礼日時:2009/10/23 08:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!