在 MS Power BI 中将来自多个时间范围的数据聚合为一个 table

Aggregating data from multiple timeframes into one table in MS Power BI

在一个 table 中,我收集了每个月每个星期日的数据。在另一个 table 中,我对同一个 objects 有一组不同的数据,但每个月只收集一次。名称匹配,但我无法创建关系,因为两列都没有唯一值。

我设法让 Power BI 通过克隆每个查询,从每个查询的两列中创建一个唯一键,然后 运行 对这些查询进行汇总,从而在同一 table 上汇总数据tables.

我想知道是否可以将每周 table 的数据汇总到几个月中,然后使用这些每月值对第二个 table 的每月数据进行 运行 操作].

其他详细信息:

每周 table 有一份抽水机列表以及他们每周抽取的水量。所以前几行可能是:

Date        | Location | Pump    | Pumped Total
-----------------------------------------------
6/11/16     | Here     | Pump A  | 20
13/11/16    | Here     | Pump A  | 35
6/11/16     | There    | Pump B  | 200

没有单一列是唯一的。 DatePump 形成了唯一的一对,但 Power BI 并不能愉快地成对工作。 DateLocation 不是唯一的,尽管我的示例是这样读的。

每月 table 包含泵和他们当月使用的电力。例如:

Location | Pump    | Month | Power Total
----------------------------------------
Here     | Pump A  | Oct   | 3.5
Here     | Pump A  | Nov   | 4
There    | Pump B  | Nov   | 120

同样,PumpMonth 是这里的唯一键。

我想要的最终结果是 table 标题有点像

Location | Pump | Month | Pumped Total | Power Total | Power Efficiency

我可以将日期排列成相同的格式,Power BI 会进行总结,这样我就可以让 Pumped TotalPower Total 正确显示,但是因为 Power EfficiencyPumped / Power,我无法计算它,因为它需要汇总 Pumped 才能将其用于 Power

创建附加维度tables

除了上述每周和每月 table 之外,您还需要 2 个(或可能是 3 个)维度 tables。

  1. 一个日期维度 table,每个日期都有一行,还有一列反映月份(10 月、11 月)。
  2. 泵维度 table,每个泵都有一行,还有它的位置(除非一个泵可以位于多个位置,否则您需要一个单独的位置 table)

泵尺寸 table 可能如下所示(请注意泵 A 只出现一次):

Pump     | Location
---------|---------
Pump A   | Here
Pump B   | There

给每月添加一个实际日期table

接下来,您需要一种方法将每月 table 与日期 table 相关联。你说你已经能够关联日期。如果不是,它可能很简单,将月度 table 中的 11 月转换为该月的第一天 (1/11/2016)。 (确保数据类型是日期类型,以匹配日期 table。)

将所有内容联系在一起

在您的数据模型中,将每周和每月事实 table 与日期和泵维度 table 相关联。不要将 table 的事实相互联系起来。

最终结果

然后,您应该能够在 Power BI 中创建一个 table,从 Pump table 中引入 Pump 信息,从日期 table 开始的月份,以及Power/Pumped 2 个事实 table 的总计,这看起来像您想要的结果。 (每周 table 将自动滚动到月份,因为它知道 6/11 和 13/11 都是 11 月)。

注意事项

重要的是,您最终 table 中的 pump/date 信息来自新维度 table,而不是个人 weekly/monthly table。每周暴涨专栏对每月暴涨一无所知。泵 table 知道每周和每月的泵。 (我建议隐藏 weekly/monthly table 中的 pump/location/date 列,这样你就不会不小心这样做了。)

请注意,如果您有多个年份,您还希望在最终结果中反映或过滤到年份(否则,它会将所有 11 月汇总在一起)。

更多阅读

本文提供了有关您尝试解决的问题类型(处理不同粒度)的更多信息:http://www.daxpatterns.com/handling-different-granularities/ - 您还可以通过搜索找到很多其他好的资源。