具有重叠时间范围的时间序列,仅使用Excel Power Query中的最新时间序列

时间:2018-08-10 09:40:46

标签: excel time-series powerpivot powerquery

我有以下问题:

在Power Query中,我可以将多个csv文件与power query合并在一起,并具有从文件夹加载的功能。不幸的是,我们获得的时间序列数据是重叠的,整个时间序列的值都已更改。 例如,我们每个星期一获取最近30天的文件。最近30天的值确实发生了变化,因此上周我的报告中的值可能不再是最新的。我的目标是用本周的新数据覆盖上周的旧数据。

示例:

文件A

Date        Item    Hits   Solved
01.01.2018  A       100    50
01.01.2018  B       138    65
02.01.2018  A       124    70
...
07.01.2018  A       143    50
07.01.2018  B       147    57
...
30.01.2018  A       250    124

文件B

Date        Item    Hits   Solved
07.07.2018  A       143    80
07.07.2018  B       147    95
...
06.02.2018  A       341    148

应使用文件B 中的新信息更新文件A 中的数据,仅保留(在这种情况下)从01.01.2018到06.01的值.2018中来自文件A 。其余应来自文件B

直到现在,我一直尝试给我的文件编号(编号越高,文件A-> 1,文件B-> 2),并用Date + Item创建一个新的( key )列。 ,按文件号排序(降序),然后在列中删除重复项。有时这可行(仅保留最新的条目),但有时却不可行。从日期列中删除重复项对我不起作用。在这里,它只是删除最新条目,保留旧条目。

是否有更好的方法来解决此问题?

非常感谢!

2 个答案:

答案 0 :(得分:1)

执行根据文件顺序对数据进行排序并将其放入Table.Buffer()的步骤,这样看起来就像

= Table.Buffer(Table.Sort(BLAH BLAH TABLE SORTING CODE))

我不记得技术原因,但是出于这里的目的,这会重置PQ在运行删除重复项时遵循表的可视排序顺序的“内部”排序顺序。

此外,也不必创建键列,您只需选择“项目+日期”列并删除重复项即可。

答案 1 :(得分:0)

我建议在FileAFileB列上从Date开始并与Item进行左反合并。这将从FileA中删除在Date中具有匹配的ItemFileB行的所有行。

然后删除此合并创建的新列,并将File B附加到末尾,您应该获得想要的结果。