我正在尝试将数据透视表中的日期分组为月份和年份。我的原始日期数据采用 mm/dd/yyyy 格式,存储在通过嵌入式 SQL 脚本刷新的表中。
出于某种原因,当我从此原始表创建数据透视表时,我收到一条错误消息,提示“无法对此选择进行分组”。我检查了一下,没有任何空白数据,该列是日期格式。我尝试了所有方法,尝试将测试列转换为日期,但结果却出现了错误。这确实有问题,但不确定是什么问题。
有人能帮助我吗?
进一步说明:
- 我的原始数据是一个可通过嵌入式 SQL 脚本刷新的表,该表有一列包含日期 - 假设它是 A 列。
- 此列 A 由 SQL 填充,日期格式为 01/20/2016,也有空白。我正在通过公式执行几个步骤来创建另一列 - 列 B。因为我需要返回该特定日期的星期日 - 例如,如果日期为 9/20/2016 - 列 B 将返回 09/18/2016。基本上,列 B 的日期等于列 A 中的日期,列 A 中的空白在列 B 中为 #N/A。
- 我正在创建 C 列以按以下方式从 B 列中获取日期:C 列 = IFERROR(COLUMN B,"01/01/2018")。因此,BI 列中 #N/A 中的任何内容都应等于“01/01/2018”。
- 我正在从这个原始数据表创建一个数据透视表,并将 C 列拖到其主要日期列。然后我想将这些日期也分组为月份和年份。但是我要么收到错误“无法对此选择进行分组”,要么如果分组,它会创建另一个名为“组 1”的列,这不是我想要的,不知道它是否可以转换为月份或年份?主页选项卡上有一个灰色的 [组选择] 部分。我想如果它不是灰色的,它将能够让我选择月份和年份层次结构。
我检查了 c 列(我的日期列),没有空白 - 格式为 1/2/2016,不知道为什么它没有分组。
我尝试在数据透视表中使用 [文本转列],但出现错误。我尝试在原始数据表中使用 [文本转列],它正在将 C 列转换为其实际公式:Iferror
答案1
可能存在区域设置问题。当日期存储为文本时,如果日期为 2016 年 1 月 1 日,则转换为日期会很好,但如果您的区域设置使用 DMY 而文本日期使用 MDY(或相反),则无法正确转换所有日期。测试数据源中日期值大于 12 的单元格,并确保它返回为正确的日期。
检查后,使用 Ctrl-T 或“插入”>“表格”将数据源转换为 Excel 表格对象。然后使用日期列上的过滤器下拉菜单。如果该列仅包含日期,则您不应该看到单个条目,而应该看到年/月/日可扩展树。
另外,请仔细检查是否有空白。也许您的数据透视表数据源在源数据的末尾包含一个空白行。
编辑:如果在将文本转列转换为日期时出现错误,则这清楚地表明文本不能解释为日期。在“文本转列”向导中,确保设置正确的日、月和年顺序,就像在源中一样。在屏幕截图中,您可以看到日期的顺序是 MDY。我的语言环境默认使用 DMY,因此我需要让“文本转列”向导知道源数据是 MDY 顺序。
编辑2:从您的评论来看,您似乎使用公式来构造日期。公式无法通过文本到列进行处理(您到底为什么要这样做???)。
确保用于创建日期的公式返回的是真实日期,而不是看起来像日期的文本。编辑您的问题,提供公式的详细信息以供检查。并且——请不要发表评论。这不是一个闲聊论坛。
答案2
您的数据透视表将“01/01/2018”解释为文本而不是日期。
而要
IFERROR(COLUMN B,"01/01/2018")
使用
IFERROR(COLUMN B,DATE(2018,1,1))
。