Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 创建数据透视表时日期值的排序问题_Excel_Date_Formatting_Pivot Table - Fatal编程技术网

Excel 创建数据透视表时日期值的排序问题

Excel 创建数据透视表时日期值的排序问题,excel,date,formatting,pivot-table,Excel,Date,Formatting,Pivot Table,我有一个两栏电子表格,其中包含日期和销售数据,如下所示: 执行操作时,右键单击->格式化单元格,日期列中的值正确显示为日期(在M/D/YYYY格式中)。这适用于除标题之外的所有日期单元格(我用Ctrl+Shirt+Down选中) 但是,当我从这两列创建透视表时,日期被识别为文本,并相应地进行排序(即第一次按月排序,然后按天排序,然后按年排序),这会弄乱我的数据: 我定期使用这种类型的数据创建透视表,以前从未遇到过这个问题,我真的不知道那里出了什么问题 在创建数据透视表时,如何强制识别日期值?

我有一个两栏电子表格,其中包含日期和销售数据,如下所示:

执行操作时,右键单击->格式化单元格日期列中的值正确显示为日期(在
M/D/YYYY
格式中)。这适用于除标题之外的所有日期单元格(我用Ctrl+Shirt+Down选中)

但是,当我从这两列创建透视表时,日期被识别为文本,并相应地进行排序(即第一次按月排序,然后按天排序,然后按年排序),这会弄乱我的数据:

我定期使用这种类型的数据创建透视表,以前从未遇到过这个问题,我真的不知道那里出了什么问题

在创建数据透视表时,如何强制识别日期值?


PS:我上传了一个文件,该文件向任何想查看它的人展示了问题。

您的问题是excel无法将您的“mm/dd/yyyy”文本字符串识别为其内部内存中的日期对象。因此,当创建数据透视表时,它不认为这些字符串是日期。< /P> 在创建数据透视表之前,首先需要将日期转换为实际日期值。这是一个很好的资源:


在您的电子表格中,我在B中创建了第二个日期列,其公式为
=DATEVALUE(A2)
。使用此新的日期列和
销售计数创建透视表,然后在透视表中正确排序(选项变为
从最旧到最新排序
,而不是
从a到Z排序
)。

尝试创建一个新的透视表,而不仅仅是刷新


我有一个例子,我忘了加上几个日期。在将它们添加到中之后,我更新了透视表范围并点击刷新。它们出现在数据透视表的末尾,没有顺序。然后,我尝试简单地创建一个新的数据透视表和日期,其中所有数据都是有序的。

您需要选择包含日期的整个列,因此单击“文本到列”按钮,然后选择delimited>取消选中所有框,直到单击“完成”按钮

这将生成单元格格式,然后将值读取为日期


希望对您有所帮助。

如果您希望在数据透视中使用一个包含2015年11月24日(即2015年11月24日)的列进行正确排序,您可以通过执行以下操作确保该列的格式正确- 突出显示该列,转到数据–文本到列–单击下一步两次,然后选择“日期”并使用默认的DMY(或选择适用于您的数据),然后单击确定

当您现在透视时,您应该会看到它正确排序,因为我们已将该列正确格式化为日期字段,以便Excel可以使用它2017年4月20日

我已经阅读了之前发布的所有答案,它们需要很多额外的工作。我找到的快速简单的解决方案如下:

1) 取消数据透视表中日期字段的分组。 2) 转到数据透视字段列表界面。 3) 重新排列字段,使日期字段列在行部分的第一位。 4) 在“设计”菜单下,选择“报告布局/以表格形式显示”


默认情况下,Excel按数据透视表中的第一个字段进行排序。您可能不希望日期字段排在第一位,但这是一个折衷方案,可以节省您的时间和大量工作。

进入选项。您很可能已经打开了“手动排序”。您需要转到单选按钮,将其更改为“升序>日期”。您也可以右键单击行/列“更多排序选项”。我花了很长时间才找到此解决方案…

我在其他地方看到了此问题。我正在使用2016 Excel。对我有效的方法是使用YYYY季度(我在寻找季度数据)。因此,我将源数据分类为YYYY xQ。2016年第1季度、2016年第2季度、2016年第3季度、2016年第4季度、2017年第1季度、2017年第2季度……你明白了。我遇到的问题是,尽管源数据的格式正确为'date'dd/mm/YYYY,但数据透视表(例如)2019年5月16日至2019年5月17日之间的2019年5月22日。该数据在透视表中可见,但位置错误。此外,透视图拒绝显示该日期的数据,即使“日期”筛选器允许选择该数据

就我而言,我必须:

  • 从透视图中,打开“日期”筛选菜单

  • 选择“从最旧到最新排序”选项

  • 答对了!透视图现在显示了丢失的日期数据

  • 您的解决方案确实解决了这个问题,但我仍然不明白为什么我首先会遇到这个问题。我有其他电子表格,日期格式相同,一切都很好,非常奇怪。这将转换为我的日期字段“DT”的VBA:
    ActiveWorksheet.PivotTables(“PivotTable1”).PivotFields(“DT”).AutoSort(“DT”)“