【问题标题】:Can't group on this selection using Dates column from SQL in Pivot Table in Excel无法使用 Excel 数据透视表中 SQL 中的日期列对此选择进行分组
【发布时间】:2017-08-02 06:54:58
【问题描述】:

我在 Excel 中有一个数据透视表,我希望能够在使用 SaleDate 列时执行 Grouping

但是,当我创建数据透视表时,右键单击字段中的元素并选择 Grouping... 我收到以下错误:

不能对这个选择进行分组

我认为是因为有一个

1) 列中的空白,或

2) 该列不是日期类型 Date在 Excel 中

我已将整列复制到 Notepad++ 并执行了Find what: (a blankspace),但没有得到任何回报,即列中没有空格。

剩下的选项编号为 2,因为我无法过滤 YearMonth 上的 SaleDate 列,它实际上似乎被解释为 text 而不是 Date

我使用 SQL 数据库作为源,我试图对其进行调整以规避此问题(我的 SQL 原始数据是数据类型 numeric,因此我首先需要将其转换为 varchar 和随后到date(请注意,这是我用来调整SQL中日期的三种不同方法。我注意到我保存数据的表确实是SQL中的数据类型date):

left(convert(date,convert(varchar,Rawdate,110),110),7) as SaleDate
convert(date,convert(varchar,Rawdate,112),112) as SaleDate
convert(date,convert(varchar,Rawdate,110),110) as SaleDate

依次返回yyyy-mmyyyy-mm-ddyyyy-mm-dd,但这些都不适用于在数据透视表中进行分组,过滤Months或@987654339 @ 在 Excel 中。

【问题讨论】:

  • 从未使用过连接到 SQL 的 Excel,但我可以建议转换为 datetime 看看会发生什么吗?如果时间部分是一个问题,您可以通过各种方式清除它,例如在您通常的date 转换之后转换为datetime
  • 如果您将 SaleDate 设为 Row 字段并单击过滤器图标,您能否发布一张图片来显示您所看到的内容?您还可以在这里发布一些您正在使用的日期的示例吗?更好的是,将一些日期粘贴到 Excel 中,截取屏幕截图并将其发布在此处,然后尝试从这些日期中制作数据透视表并对字段进行分组。这将有助于诊断潜在问题。
  • @KtX2SkD 成功了!转换为日期时间,而不是我之前尝试过的日期,就像一个魅力。我没有按Month 过滤的选项,但我有按yearquarter 过滤的选项,而且我真的只需要年份。请考虑将您的评论作为答案,以便我接受。

标签: sql-server excel date pivot-table


【解决方案1】:

虽然我从未专门研究过直接使用 SQL-Server 的 Excel,但我知道 SQL-Server has many date & time types,不像 .NET 的 C# 更少,或者 Excel 只有一个(1)。 SQL-Server 本身的类型从(2)开始就不是那么相互合作,所以即使是最小的差异也不会引起问题在尝试移植到其他技术时,我遇到过几次。

考虑到这一点,以及您对日期转换可能失败的证据,以及您提到的链式转换,我的第一个建议是为 Excel 提供不同的日期类型,以及我的首选应该是 datetimedatetime2,因为是最流行、最完整、最类似于 Excel 的孤独类型。

(1):它更像是零,它只是一个整数,周围的每个人都对它进行特殊处理,他们有一半的时间都失败了。
(2):为什么int to/from datetime 会很好,但int to/from datetime2 不是...

【讨论】:

  • 再次感谢您为此事添加更多信息。我已经看到很多关于数据类型错误的帖子,但不是这样的好方法,尤其是datetime 应该最类似于 Excel 的日期类型。
【解决方案2】:

如果您将感兴趣的字段设置为行字段,然后单击列标题中的“过滤器”三角形,然后通常在该 PivotFilter 框中的列表底部,您会看到导致您问题。请注意,它可能只是看起来像日期的文本,或者根据下面屏幕截图中的基本示例,它可能更明显:

根据我的评论,另一种诊断正在发生的事情的方法是,只取一些你确定是日期的项目,将它们放入一个范围内,用它们制作一个数据透视表,然后看看你是否可以分组他们。如果可以,那么您就知道问题确实可能出在数据中的某些文本上。如果不能,那么很可能您的文本仍需要转换为日期...但是您需要在此处发布一些示例,以便我们为您提供有关如何将其转换为 Excel 识别的建议的建议作为约会。

【讨论】:

    猜你喜欢
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多