• ベストアンサー

EXCELで「1番を選択したのは○○さんと△△さんと・・・」というアンケートを集計したいのですが、方法がわかりません。

EXCELで「1番を選択したのは○○さんと△△さんと・・・」というアンケートを集計したいのですが、方法がわかりません。 修学旅行で行きたいコースを選んでもらいました。 アンケートをとって、1~4まであり、「1番を選んだのはこの人!」っていうシートを作りたいのです。 1名前 名前 名前 名前 名前 2名前 名前 名前 3名前 名前 名前 名前 名前 名前 名前 名前 4名前 名前 と、横に並べたいのですが、方法を教えてください!

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

  • ベストアンサー
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

例えば、アンケートの結果を 次のように 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" をより大きな数値に置換してください。

min-o-min
質問者

お礼

お礼が遅くなり,申し訳ありませんでした。 なるほど「CLUMN」を初めて見ました。 コピーさせて使わせていただきました! ありがとうございました!

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 以下の数式を、横と縦に、オートフィルコピーすればよいです。 範囲は、$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

min-o-min
質問者

お礼

マクロを使ったことがないのですが,勉強しなきゃいけないなぁと思いました。 お礼がおそくなり,申し訳ありませんでした! ありがとうございました!

関連するQ&A

専門家に質問してみよう