- ベストアンサー
EXCELで「1番を選択したのは○○さんと△△さんと・・・」というアンケートを集計したいのですが、方法がわかりません。
EXCELで「1番を選択したのは○○さんと△△さんと・・・」というアンケートを集計したいのですが、方法がわかりません。 修学旅行で行きたいコースを選んでもらいました。 アンケートをとって、1~4まであり、「1番を選んだのはこの人!」っていうシートを作りたいのです。 1名前 名前 名前 名前 名前 2名前 名前 名前 3名前 名前 名前 名前 名前 名前 名前 名前 4名前 名前 と、横に並べたいのですが、方法を教えてください!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えば、アンケートの結果を 次のように A列 B列に入力します。 A列 B列 1 愛 飢男 2 柿 喰恵子 3 刺 素性蔵 4 舘 伝等 4 菜煮 濡寝納 3 葉日 布辺方 2 麻実 夢名望 1 羅利 瑠麗朗 1 画技 具夏剛 2 坐時 逗是造 3 陀辞 津出堂 4 芭日 蕪辺坊 集計結果 を D列、E列、F列、・・・・ に出力する場合です。 D列 1 2 3 4 そして、E1セルに以下の計算式を入力します。 ただし、配列数式を使用するため、式入力後の確定時には、単に Enter ではなく、[Ctrl] と [Shift] キーを押しながら、Enter してください。 =IF(COUNTIF($A$1:$A$60,$D1)<COLUMN(A1),"",INDEX($B$1:$B$60,SMALL(IF($A$1:$A$60=$D1,ROW($1:$60)),COLUMN(A1)))) 後は、オートフィルコピーで E1 セル~ Z1 まで E1 セル~ E4 まで、同じ数式で埋めてください。 ※ とりあえず、60名を対象としていますが、より多数の場合、 数式の "60" をより大きな数値に置換してください。
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 以下の数式を、横と縦に、オートフィルコピーすればよいです。 範囲は、$A$20までになっていますが、必要な分だけ、数を置換で換え、増やしてください。 =IF(OR(MAX($A$1:$A$20)<ROW(A1),COUNTIF($A$1:$A$20,COLUMN(A1))<COLUMN(A1)),"",INDEX($B$1:$B$20,SMALL(INDEX(($A$1:$A$20=ROW($A1))*ROW($A$1:$A$20),,),COUNTIF($A$1:$A$20,"<>" &ROW($A1))+COLUMN(A1)),1)) 数式が長いので、シートを軽くするため、マクロにするなら、このようになります。数は、29,999までになっていますが、必要に応じて以下を書き換えしてください。.Range("A30000") '------------------------------------------- Sub PickUpTest1() Dim rng As Range Dim i As Long, j As Long Dim c As Variant Dim buf As String Dim Ar As Variant With ActiveSheet Set rng = .Range("A1", .Range("A30000").End(xlUp)) For i = 1 To Application.Max(rng) For Each c In rng If c.Value = i Then buf = buf & "," & c.Offset(, 1).Value End If Next c If Len(buf) > 1 Then .Range("D1").Offset(j).Value = i Ar = Split(Mid(buf, 2), ",") .Range("E1").Offset(j).Resize(, UBound(Ar) + 1).Value = Ar j = j + 1 buf = "" Erase Ar End If Next i End With Set rng = Nothing End Sub
お礼
マクロを使ったことがないのですが,勉強しなきゃいけないなぁと思いました。 お礼がおそくなり,申し訳ありませんでした! ありがとうございました!
お礼
お礼が遅くなり,申し訳ありませんでした。 なるほど「CLUMN」を初めて見ました。 コピーさせて使わせていただきました! ありがとうございました!