Pivot table 找不到当年 1 月与上一年 12 月之间的差异。 Excel 2010

Pivot table cannot find difference between January current year to December of previous year. Excel 2010

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

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

然后我有另外 2 列计算与上个月的差异和百分比差异。这很好用。

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

看2014年12月怎么理解

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

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

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

当有两个不同级别的分组时,即 Year 和 Month,无法 Excel 将一组的最后一项与前一组的第一项进行比较。

Excel 将额外的分组级别视为不同的字段,这在查看数据透视表字段时可见。日期的年份显示为单独的字段:

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

同样,Excel 无法与前一组的值进行比较,即使 human-logic 知道它是整个序列中的前一个值。

要查看跨年月之间的差异,有必要将所有 Year-Months 都放在一个字段中。在正常日期使用数据透视表分组是不可能的。

解决方法需要将一个新字段添加到每个 Year-Month 包含一个值的数据中。然后数据透视表将自然地按这些 Year-Month 值对数据进行分组。

有两种方法可以实现:

  1. 计算每个Year-Month
  2. 的第一天

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

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

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

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

  1. 为每个 Year-Month
  2. 计算一个文本值

使用此公式插入一列:

=TEXT(A2,"yyyy mm")

例如以下数据:

可以生成这个数据透视表(求和差):

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

文本解决方案的好处是具有更大的灵活性。例如,您可以使用更高级的公式对 bi-monthly 进行分组,或者通过串联将两个实际数据字段组合在一起。