excel VBA 数据透视表

2024-11-23 09:47:55
推荐回答(3个)
回答1:

  1. 首先,选中原始数据区域,点击【插入】-【数据透视表】。

  2. 如果刚才已经选中了数据区域,在【数据透视表向导】中最上面的选择区域框可以看到选中的单元格区域,如果刚才没有选中,也可以在此选取。

  3. 数据透视表提供了在新工作表创建和在当前工作表创建的选择,如果数据透视表较大,内容很多,建议在新工作表中生成透视表。

  4. 根据实际情况选择完上述两个设置后,点击【确定】按钮。

  5. 这时,在excel中就出现了一个新工作表。左面是空白的透视表区域,右边是数据透视表字段列表,可以拖动和设置。

  6. 数据透视表列表字段处显示的字段名称是原始数据区域的抬头,可以拖动到下面的四个框中。

  7. 把【姓名】字段拖到行标签位置,【数量】拖动到【数值】位置。这时,可以看到左方的数据透视表已经按照不同的人名将数量进行了汇总。

  8. 行标签处可以插入多个,但是前后顺序要根据自己的需求来选择。比如说,我们要按人员和名称分别看汇总数,可以将【名称】字段拖到【姓名】字段下面,结果如下图所示:

  9. 选中数据透视表上任何一个单元格,菜单栏上将激活【选项】和【设计】两个选项卡,可以对报表布局、样式等进行更多设置。

回答2:

兄弟,我把我以前经常用的方法复制过来了,并放了一些说明,如果以下代码中有不需要的,可以删掉或屏蔽掉.下面的区域和字段名称,表名,你需要改成你自已经,希望对你有帮助,如有问题,可追问.

Private Sub CommandButton1_Click()
On Error Resume Next
'在b表中创建数据透视表前,把b表的格式内容全删掉.
Worksheets("b").Cells.Clear
With Worksheets("a")
'把分类总都设为false,即取消分类汇总
NoSubTotal = Array(False, False, False, False, False, False, False, False, False, False, False, False)
Dim pv1 As PivotTable
'设置数据源,这里是a表中的a1:e100的范围,在b表的A4单元格创建数据透视表.透视表名称取为mypv001
Set pv1 = .PivotTableWizard(SourceType:=xlDatabase, SourceData:=.Range(.Cells(1, 1), .Cells(100, 5)), TableDestination:=Worksheets("b").Range("a4"), tablename:="mypv001")
'添加行数据,列数据,以及页数据.(如果不需要页可以把以下落PageFields删除掉.
pv1.AddFields RowFields:=Array("产品", "产品ID") ', PageFields:="123"  ', ColumnFields:="123"
'添加数据区,"数量"和"单价"是你原A表中显示的字段,"数量(PCS)"和"单价HKD"是a表中数据透视表显示的字段.
pv1.AddDataField pv1.PivotFields("数量"), "数量(pcs)", xlSum
pv1.AddDataField pv1.PivotFields("单价"), "单价(HKD)", xlMax
'把"产品"这个字段的的分类汇总去掉
pv1.PivotFields("产品").Subtotals = NoSubTotal
'把数量(pcs),单价(HKD)由坚着显示变为横着显示.
pv1.DataPivotField.Orientation = xlColumnField
pv1.DataPivotField.Position = 2
'去掉行汇总
pv1.RowGrand = False
'去掉列汇总
pv1.ColumnGrand = False
End With
End Sub

回答3:

你在这个窗口选DEBUG,然后看停留的代码,代码需要适当修改