【问题标题】:Unable to sort pivot table by date无法按日期对数据透视表进行排序
【发布时间】:2019-01-08 09:29:40
【问题描述】:

我有一个包含 2 列跨越日期的数据透视表(Create Date 和Target Date)。我无法对数据透视表中的任何字段进行排序,但我需要能够对日期字段进行排序。我仔细检查了格式是日期(当更改为数字格式时,显示日期序列,ISTEXT 显示FALSE)

下面的字段列表和相关列的照片。下面的照片只是为了说明格式确实是日期。

由于所有字段都显示在行下,这不会排序吗?是否有另一种方法可以使用当前设置对其进行排序?

我对 VBA 解决方案持开放态度,因为我已经有一个因其他原因循环遍历每个枢轴的宏。

【问题讨论】:

  • 我制作了一个模拟表,其中包含根据字段名称我认为应该与您的数据相似的数据。我能够毫无问题地对数据透视表中的每一列进行排序。我会检查您是否没有启用手动排序,因为我知道这会导致下拉菜单“变灰”。 i.stack.imgur.com/ViPwo.png
  • @JohnStark 手动过滤器已开启,但删除后数据仍无法排序。我将排序选项添加为照片。好建议。我真的无法弄清楚为什么这不会排序。快把我逼疯了
  • 您确定对所有其他字段也关闭了手动过滤吗?如果所有其他字段基本上是固定的,我可以看到锁定创建日期。我过去听到的其他奇怪建议是尝试将创建的日期字段移动到图表的前面(行堆栈的顶部),看看是否会解锁下拉菜单。
  • @JohnStark 可以确认这是问题所在。以这种方式设置数据透视表时,您只能对第一列进行排序。之后的排序选项只会对分组中存在的子值进行排序。我无法切换列顺序,所以现在我不知道该怎么做。
  • 太棒了,是的!

标签: excel vba pivot-table


【解决方案1】:

发布在 cmets 中发现的内容的简要概要:

tl;dr : 如果您有一个表格形式的数据透视表,则应用于列的排序将仅应用于子分组字段,并且不会对表的所有列进行排序(因此第一列是唯一能够对表的所有行重新排序的字段。


如果您从完全未排序的表格开始,并对第一列进行排序,它将重新排序所有列中的所有行,因为所有其他列都是第一列的子列(子列):

未排序的起始数据透视表


第一列排序数据透视表

随后对第二列进行排序(在本例中),实际上不会改变表格,因为 Target Date 中的值已经与 Created Date 中的值相关联> 一对一。因此它们被锁定为为第 1 列选择的排序顺序。

但是,在这种情况下对第三列进行排序确实会改变其余字段的结构,因为 Task Number 与 Target Date 之间存在 2 对 1 的关系。 em> 排序后的第三列可以得到的两个版本的表格如下。请注意,在 Target Date 的重复项中排序:

任务编号从大到小排序


任务编号从小到大排序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 2016-06-10
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2021-10-31
    相关资源
    最近更新 更多