数据透视表在上一年的1月到上年的12月之间找不到。 Excel 2010

我已经有数周的时间制作了我的第一张数据透视表,不敢相信他们的力量,却碰上了我无法克服的困难。

我有一个工作表,有一个与原始数据列(手动估算)

然后我有另外2列计算与上个月的差异和%的差异。 这工作正常。

表的示例(注意为了数据安全性而改变了一些数字,所以计算不相加)

正如你可以看到2015年1月是空白的,因为差异字段正在寻找上个月,而1月是第一个月。

在这里输入图像说明

我怎么能理解到2014年12月

如果有两个不同级别的分组,即年和月,则无法使Excel将一个分组的最后一个项目与前一个分组的第一个项目进行比较。

Excel将附加级别的分组视为不同的字段,这在查看数据透视表字段时是可见的。 date的年份显示为一个单独的字段:

数据透视表字段

select计算差异时,Excel只能与同一字段中的值进行比较。 请注意,您可以比较特定的月份值,而不是特定年份的特定月份:

数据透视表汇总字段

同样,即使人类逻辑知道它是整个序列中的前一个值,Excel也不能与先前分组的值进行比较。

要查看跨越多年的每个月之间的差异,有必要在单个字段中具有所有的年份。 这在正常date使用数据透视表分组是不可能的。

解决方法需要将新字段添加到每个Year-Month包含单个值的数据中。 然后,数据透视表将按照这些年份 – 月份值自然分组数据。

有两种方法可以实现:

  1. 计算每个年份的第一天

用此公式插入另一列(指A2单元格中的date):

=Date(Year(A2),Month(A2),1) 

在数据进入数据透视表之前,通过将每个date视为月份的第一个来执行分组。 在数据透视表中,默认情况下会显示完整的date。 您可以将“自定义编号格式设置”应用于该字段以仅显示月份和年份,例如:“mmm yyyy”

按月分组时,这是一个更好的解决scheme,因为它允许更多的格式化选项。

  1. 计算每个年份的文本值

用这个公式插入一列:

 =TEXT(A2,"yyyy mm") 

例如,以下数据:

数据

可以生成此数据透视表(与总和,然后区别):

数据透视表

文本解决scheme的缺点是,如果您希望数据透视表按时间顺序自动sorting值,则必须以数字方式指定年份和月份(并分别填充为4位和2位)。

文本解决scheme的好处是更大的灵活性。 例如,您可以使用更高级的公式对双月份进行分组,也可以通过串联将实际数据的两个字段组合在一起。

你有没有尝试在一个单元格中结合月份和年份? 所以在源数据上,在月份列中有:

Aug-14 Sep-14 Oct-14 Nov-14 Dec-14 Jan-15

而不是有一个月份名称和一个年份的列。 确保一旦你在原始数据标签中input了几个月份,他们就会进入单元格的右侧,这意味着Excel把它们看作date而不是文本。