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


4

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

我的数据

data

期望的结果

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

expected outcome

使用透视表的实际结果

这是我的数据透视表实际上的样子。如果按排序计数排序,则值列的顺序错误。如果按值排序,则计数顺序错误。没有为透视表的辅助列排序相等值的概念。

pivot tables

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


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

Answers:


4

使用计算字段

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

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

所以我将OrderCount扩大了一个大数字,总价值下降了一个大数字:

= (OrderCount*1000) + (Value/1000) 

对于Jemaine上面的数字,这将产生一个值 3000.18。布雷特会 3000.07,默里/布莱恩 1000.09 等 - 正确的顺序。

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

= (OrderCount*1000) + (Value/1000) + (3rdCondition/1000000)

添加计算字段

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

order count

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

add calc field

add formula

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

correct outcome

整理

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

但是,我经常不喜欢隐藏列(个人偏好),所以要使这个列不引人注目我可以将列重命名为 (即空格),并将SortOrder值的数字列格式化为自定义格式 "";"";""。如果Excel自动调整列宽,则会使列几乎不可察觉。

enter image description here

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.