首页 > 解决方案 > 如何使用 Excel/Power Pivot 将每周数据拆分为每月数据?

问题描述

我的数据在每周存储桶中。我想将这个数字分成每月的数字,但是由于两个月的天数重叠,我想要每个月的天数的加权平均值。例如:

在此处输入图像描述

现在,在上图中,我想拆分那 200 个(1 月为 5/7*200,2 月为 2/7)。如何使用 Excel/Power Pivot/Dax 函数来做到这一点?非常感谢这里的任何帮助。

谢谢!

标签: excelpowerbidaxpowerpivot

解决方案


假设您的事实表如下所示。值与它发生的一周的开始日期相关联。

事实表

尽管它实际上可能是一个更细粒度的数据,每周都有多行具有附加属性(例如人的标识符,商店,取决于业务),但下面显示的内容将是相同的。

我们首先需要做的是创建一个日期表。我们可以在“设计”选项卡中执行此操作,方法是单击“日期表”,然后单击“新建”。

日期表

在这个日期表中,我们需要为每一行的日期所在的星期的开始日期添加一列。将光标置于“添加列”区域,然后输入以下公式。然后将此列重命名为“周开始日期”。

= [Date] - [Day Of Week Number] + 1

现在,我们可以使用以下公式定义计算分配给每个月的数量的度量。这项措施的作用是:

  • 遍历事实表的每一行
  • 计算过滤器上下文中可见的一周的天数
  • 添加可见日期的值部分
Value Allocation := SUMX (
    MyData,
    VAR WeekStartDate = MyData[Week]
    VAR NumDaysInSelection = COUNTROWS (
        FILTER (
            'Calendar',
            'Calendar'[Week Start Date] = WeekStartDate
        )
    )
    VAR AllocationRate = DIVIDE ( NumDaysInSelection, 7 )
    RETURN AllocationRate * MyData[Value]
)

数据透视表中的结果将如下所示。

结果


推荐阅读