我有一个数据透视表,我想对一些列进行排序。但是“排序”功能根本不起作用。当我单击“从 A 到 Z 排序”时,什么也没有发生。我只能对表格的第一列进行排序,但不能对其他列进行排序。
- 没有隐藏的行或列
- 同一列中的数据具有相同的类型
- 根本没有公式
答案1
这个问题突出了表格和数据透视表之间的主要区别之一。数据透视表的工作方式是将数据分组为类别,然后对与每个类别相关的数据进行某种算术运算。而表格只是为每行提供基础数据。这解释了您在尝试过滤数据透视表第一列以外的任何内容时观察到的差异:
- 因为表格不需要进行任何类型的分组,所以您可以按字母顺序对它们进行排序任何您想要的列。
- 但数据透视表是基于数据中的底层关系,显示层次结构由字段在数据透视表本身中的显示顺序设置。而该顺序决定了您可以按多少顺序对任何一个字段进行排序。因为与可以按整个列排序的表列不同,数据透视字段在当前层次结构的范围内进行排序。
很难用语言解释,所以让我们看一个典型的例子:美国各州和城市。
如果我们要在数据透视表中查看美国城市及其相关人口的列表,则默认情况下 Excel 会严格按字母顺序列出这些城市,如下图所示。如果我们在该城市字段的左侧添加一个州字段,则数据透视表将显示...
“好的,我添加了州字段,因为它位于城市字段的左侧,我猜你现在想细分这些城市的人口数字经过州。好的,很酷……我会按州分组。但我仍然会按字母顺序列出它们之内这些州的分组,让您可以轻松找到任何特定州的任何特定城市”。
我们可以看到,原来的城市布局是从 A 到 Z,而现在城市是从 A 到 W 排序的(安克雷奇到瓦西拉)代表阿拉斯加州(AK),然后从 A 重新开始(亚当斯维尔) 代表阿拉巴马州 (AL)。
现在,如果我们处理的只是一张表格——如果你想要恢复严格的按字母顺序排列的城市布局——你只需单击城市标题旁边的三角形过滤器图标,按 A 到 Z 排序,然后让这些城市恢复到原来的顺序。但请尝试一下,如下图左所示,三角过滤器图标会显示一个箭头,告诉你该字段现在按字母顺序排序,但实际排序顺序与之前相比不会有丝毫改变。这也是一件好事,因为否则会破坏数据透视表始终按从最内(左)字段到最外(右)字段排序的项目的范例。事实上,按城市对这些人口数据进行排序的唯一方法是将城市字段设为数据透视表中最右边的字段,如下图右所示。
考虑到这一点,如果三角形过滤器图标没有改变任何东西,那它还有什么用呢?嗯,它做更改排序顺序,但仅有的在左侧字段定义的分组中。举例来说,如果您按 Z 到 A 对城市进行排序,则会得到以下结果:
答案2
我在这里找到了替代解决方案:排序问题
在“数据透视表选项”->“总计和过滤器”下,取消选中使用自定义过滤器的复选框。