数据透视表无法找到1月当前年份与上年12月之间的差异。 Excel 2010

时间:2015-02-11 13:43:11

标签: excel pivot excel-2010 pivot-table

我有几个星期的时间制作我的第一个数据透视表,不能相信它们的力量但是遇到了我无法克服的障碍。

我有一个工作表,其中包含一个包含原始数据的列(手动插补)

然后我有另外两列计算与上个月的差异和%差异。这很好。

Sample of the table (note changed some numbers for data security so the calculations don't add up)

正如您所见,2015年1月为空白,因为差异字段正在寻找上个月而1月是第一个月。

enter image description here

如何看待2014年12月才能理解

2 个答案:

答案 0 :(得分:5)

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

Excel将附加级别的分组视为不同的字段,在查看数据透视表字段时可以看到该字段。日期年份显示为单独的字段:

PivotTable Fields

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

PivotTable Summarise Field

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

要了解每个月的不同年份之间的差异,必须在一个字段中包含所有年份。在正常日期使用数据透视表分组是不可能的。

变通方法需要将新字段添加到数据中,该字段包含每年 - 月的单个值。然后,数据透视表将按照这些年 - 月值自然地对数据进行分组。

有两种方法可以实现:

  1. 计算每个年度的第一天
  2. 使用此公式插入另一列(指A2单元格中的日期):

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

    这会在数据进入数据透视表之前执行分组,方法是将每个日期视为该月的第一个日期。在数据透视表中,默认情况下将显示完整日期。您可以在字段中应用自定义数字格式以仅显示月份和年份,例如:" mmm yyyy"

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

    1. 计算每个Year-Month的文本值
    2. 使用以下公式插入一列:

      =TEXT(A2,"yyyy mm")
      

      例如,以下数据:

      Data

      可以生成此数据透视表(带有总和然后差异):

      PivotTable

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

      文本解决方案的好处是更大的灵活性。例如,您可以通过连接将两个月与更高级的公式分组或将两个实际数据组合在一起。

答案 1 :(得分:0)

您是否尝试过在一个单元格中合并月份和年份?所以在源数据上,月份列中有:

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

而不是一个列用于月份名称而一个用于一年。 确保在原始数据选项卡中输入月份后,它们会转到单元格的右侧,这意味着Excel将它们视为日期而非文本。