Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


76710 / 76738 ←次へ | 前へ→

【4377】Re:集計方法について(案その1)
回答  りん E-MAIL  - 03/3/17(月) 8:09 -

引用なし
パスワード
   はらへりおおかみ さん、おはようございます。

>集計用シートは下のような形で
>というように集計していきたいのですが、国語が入力されている列、Aが入力されてい
る行に国語がA評価になっている人の数を入力するにはどうしたら良いのでしょうか?

 VBAではSelectCaseやIfで分岐する方法もありますが、エクセルの機能のピボットテーブルで編集して、マクロの記録をしたものをちょっといじったのがこれ。

Sub Test()
  Dim PT As PivotTable, r1 As Range, r2 As Range
  With Worksheets("Pivot集計用") 'こういう名前のシートを準備
   Set r2 = .Range("A1")
   '既存テーブルクリア
   If .PivotTables.Count > 0 Then .PivotTables(1).TableRange2.Clear
  End With
  '
  With Worksheets("入力用") 'こういう名前のシートを準備
   '1行目には「項目」「成績」が入っていること
   Set r1 = .Range(.Range("A1"), .Range("B1").End(xlDown))
   Set PT = .PivotTableWizard(SourceType:=xlDatabase, _
                 SourceData:=r1, _
                 TableDestination:=r2, _
                 TableName:="Pivot" & .PivotTables.Count)
   PT.AddFields RowFields:="成績", ColumnFields:="項目"
   PT.PivotFields(1).Orientation = xlDataField
  End With
  Set PT = Nothing
End Sub

こんな感じです。

手動でピボットを作る場合は、データ範囲を選択して、
データ → ピボットテーブルレポート
 エクセルのリスト/データベース (次へ)
 範囲(選択していたらそのまま) (次へ)
 エクセルのリスト/データベース (次へ)
 列FieldとデータFieldに項目を、行Fieldに成績をドロップします。 (次へ)
 (データFieldにはデータの個数:項目と表示されていればOK)
 作成先範囲(集計用シートのセルA1)を選択 (完了)
で、クロス集計表が作成されます。

3 hits

【4374】集計方法について はらへりおおかみ 03/3/16(日) 22:41 質問
【4377】Re:集計方法について(案その1) りん 03/3/17(月) 8:09 回答
【4471】Re:集計方法について(案その1) はらへりおおかみ 03/3/21(金) 17:45 お礼
【4476】集計方法について(案その2) こう 03/3/21(金) 22:32 発言
【4673】Re:集計方法について(案その2) はらへりおおかみ 03/4/1(火) 23:39 お礼

76710 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free