• 締切済み

Excelマクロ 別シートでの複数条件の選択

いろいろ検索してみましたが、以下の条件でデータ分析する時にどのようなマクロ関数を書けばよいのか分からないので、教えて下さい。 例えば「シート1」に生データがあって、「シート2」にその結果を表示させようと思います。 「シート1」のA列に、XとYが交互にあったとします。 その横のB列に、1,2,3があったとします。 その中から「A列のXとB列の1」「A列のXとB列の2」…「A列のYとB列の3」の組み合わせの個数を、「シート2」にそれぞれ表示させたい場合、どのようなマクロ関数を作成すればよいでしょうか?

みんなの回答

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

Sub try() Dim Dic As Object Dim i As Long, st As String Dim v Set Dic = CreateObject("Scripting.Dictionary") With Worksheets("Sheet1") v = .Range(.Range("A1"), .Cells(Rows.Count, 2).End(xlUp)).Value End With For i = 1 To UBound(v, 1) st = v(i, 1) & "_" & v(i, 2) If Dic.exists(st) Then Dic(st) = Array(Dic(st)(0), Dic(st)(1), Dic(st)(2) + 1) Else Dic(st) = Array(v(i, 1), v(i, 2), 1) End If Next Worksheets("Sheet2").Range("A1").Resize(Dic.Count, 3).Value = _ Application.Transpose(Application.Transpose(Dic.Items)) Set Dic = Nothing Erase v End Sub 一例として。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

ピボットテーブルは試されましたか ツールバーのデータ=>ピボットテーブルと・・・ のウィザードに従っていけばご希望のシートが出来そうな気がしますが。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

組み合わせの「個数」ですか? 「X・Y」「1・2・3」が予め設定されているのであれば、マクロでやらなくてもシートにSUMPRODUCT関数を設定すれば表示してくれます。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/waza/count01.html#dcount http://www11.plala.or.jp/koma_Excel/contents3/mame3029/mame302903.html

関連するQ&A