我有以下Excel电子表格:
A B C D
1 Product Category Sale Margin
2 Product A Apparel 500 45%
3 Product A Apparel 400 30%
4 Product A Shoes 600 55%
5 Product B Apparel 300 20%
6 Product C Beauty 100 40%
7 Product C Shoes 200 65%
8 Product D Apparel 450 25%
9 Product D Beauty 700 50%
10 Product D Beauty 250 35%
根据这些数据,我创建了一个数据透视表。 在此数据透视表中,我添加了以下计算字段以获得利润:
Profit = Sale * Margin
导致以下数据透视表:
Sum of Profit
Product A 1.950
Product B 60
Product C 315
Product D 1.540
现在,我想排序此数据透视表降序,所以它看起来如下所示:
Sum of Profit
Product A 1.950
Product D 1.540
Product C 315
Product B 60
似乎对于计算字段,数据透视表工具中的排序选项不可用。
您对我如何实现这种排序有任何其他想法吗?
注意:我知道我可以在源数据中添加 E列中的利润计算。但是,与上面的简化示例相比,我的原始文件有点复杂,因此计算字段是不可避免的。
答案 0 :(得分:1)
右键单击计算字段中的单元格 - >排序 - >从最大到最小排序。
或者您可以尝试使用以下代码对计算字段进行排序。
Sub SortCalculatedField()
Dim ws As Worksheet
Dim pt As PivotTable
Set ws = Sheets("Sheet1") 'This is the sheet which contains Pivot Table
Set pt = ws.PivotTables(1)
pt.PivotFields("Product").AutoSort xlDescending, "Sum of Profit", pt.PivotColumnAxis.PivotLines(1), 1
End Sub
答案 1 :(得分:1)
如果行部分(分类数据)中有多个字段,则数据透视表似乎无法以通常的方式进行排序。我已经在多个数据透视表布局中尝试过它,它甚至在“传统”数据透视表布局中也是如此。如果需要有多个分类元素,我相信串联将是一种解决方法。