无法按两列或更多列对 Excel 数据透视表进行排序

And*_*ohr 4 sorting pivot-table microsoft-excel microsoft-excel-2013

我想按两列对我的数据透视表进行排序。我在网上搜索了一段时间,似乎 Excel 不允许这样做,所以我需要一个解决方法。

我的资料

数据

期望的结果

我想按客户总结这一点,按订单数量排序,然后是订单总价值 - 所以这是我希望看到的表格模型:

预期结果

使用数据透视表的实际结果

这是我的数据透视表的实际外观。如果我按订单数排序,则值列的顺序错误。如果我按值排序,则计数顺序错误。没有按数据透视表的辅助列对相等值进行排序的概念。

数据透视表

如何按多列对 Excel 数据透视表进行排序?


注意:我知道如果你有两组行标签,你可以按多列对数据透视表进行排序,就像我在这里展示的那样。但是在这种情况下,由于各种原因,我只想要一组行标签。

And*_*ohr 5

使用计算字段

我发现实现此目的的最佳方法是将计算字段添加到生成正确排序顺序的表中,然后隐藏该列。

排序顺序字段需要通过向上或向下缩放每个排序列来工作,以便输出排序值的任何列都不会与任何其他列重叠。

所以我将 OrderCount 放大了一个大数字,并将总价值缩小了一个大数字:

= (OrderCount*1000) + (Value/1000) 
Run Code Online (Sandbox Code Playgroud)

对于上面 Jemaine 的数字,这将产生一个值3000.18。Bret 将是3000.07,Murray/Brian1000.09等 - 正确的顺序。

如果我想添加第三个排序条件,我必须将其缩小更大的数字:

= (OrderCount*1000) + (Value/1000) + (3rdCondition/1000000)
Run Code Online (Sandbox Code Playgroud)

添加计算字段

要在数据透视表中实际实现这一点,我需要在数据表中添加一列,以便计算字段可以计算订单。我只是添加了一OrderCount列并将值设置1为每一行:

订单数

现在我们可以添加计算字段。从功能区中选择此选项并输入公式:

添加计算字段

添加公式

我的数据透视表现在看起来像这样,排序正确。

正确的结果

整理

这个 SortOrder 列可能会混淆其他用户,所以我可以隐藏整个列。

但是,我通常不喜欢隐藏列(个人偏好),因此为了使该列不显眼,我可以将列重命名为(即空格),并将 SortOrder 值的数字列格式化为"";"";"". 如果 Excel 自动调整列宽,这会使该列几乎不明显。

在此处输入图片说明