Google 工作表中的累积差异或滚动差异 - 查询

Cumulatve Difference or rolling difference in Google Sheets - Query

我有以下 query formula 可以将不同 Facebook 页面的关注者数量从一个 sheet 转移到另一个:

=QUERY('Page Level'!A2:N, "SELECT C, MAX(J) where J<>0 and M<>'' GROUP BY C PIVOT M label C 'Date'")

结果是这样的,但有更多的国家:

Date    Australia   Austria Belgium
2018-01-01  7912    4365    1343
2018-01-02  7931    4364    1343
2018-01-03  7930    4366    1344
2018-01-04  7928    4365    1345
2018-01-05  7929    4362    1347
2018-01-06  7939    4363    1347
2018-01-07  7950    4361    1348
2018-01-08  7933    4339    1343

我想要的不是完整的关注者数量,而是日期之间的简单差异。所以,如果我们取上面的 table 结果将是这样的:

    Date      Australia Austria Belgium
    2018-01-01  7912    4365    1343
    2018-01-02  19       -1     0
    2018-01-03  -1      2       1

每个新日期依此类推。任何人都知道如何在 google sheet 上执行此操作吗?

如果有帮助的话,我还有这些国家都在同一列中的数据。但是,数据不是按国家和日期排序的。而不是按日期和国家/地区,所以我想这个解决方案必须事先以某种方式对数据进行排序。

透视数据:

Date    Country         Followers
2018-01-01  Australia   7912
2018-01-01  Austria     4365
2018-01-01  Belgium     1343
2018-01-02  Australia   7931
2018-01-02  Austria     4364
2018-01-02  Belgium     1343
2018-01-03  Australia   7930
2018-01-03  Austria     4366
2018-01-03  Belgium     1344
2018-01-04  Australia   7928
2018-01-04  Austria     4365
2018-01-04  Belgium     1345
2018-01-05  Australia   7929
2018-01-05  Austria     4362
2018-01-05  Belgium     1347
2018-01-06  Australia   7939
2018-01-06  Austria     4363
2018-01-06  Belgium     1347
2018-01-07  Australia   7950
2018-01-07  Austria     4361
2018-01-07  Belgium     1348
2018-01-08  Australia   7933
2018-01-08  Austria     4339
2018-01-08  Belgium     1343

我已经相当接近它了,使用从旋转数据偏移中减去旋转数据 1 的基本思想:

=iferror(arrayformula({query(A:C,"SELECT A, MAX(C) where C<>0 and B<>'' GROUP BY A PIVOT B limit 1 label A 'Date'");
query(A:C,"SELECT A, MAX(C) where C<>0 and B<>'' GROUP BY A PIVOT B offset 1")-
query(A:C,"SELECT 0, MAX(C) where C<>0 and B<>'' GROUP BY A PIVOT B")}),"")

它会在尝试减去 header 和后来的 non-existent 行时产生错误(如您所料)。我不知道如何避免这种情况,除非使用 IFERROR 产生如下所示的空行: