代码之家  ›  专栏  ›  技术社区  ›  Randy Minder

尝试找出并行周期在DAX中的工作方式

  •  1
  • Randy Minder  · 技术社区  · 7 年前

    我有一个简单的power bi表,如下所示:

    enter image description here

    我有两张桌子。日期表和发票表,其中的字段表示发票金额。这是invoice.invoiced上的1-m关系。

    第二列只是发票总额的一个度量。第三列和第四列是使用ParallelPeriod对之前12个月和之前24个月的发票进行合计的度量。尽管这些数字是正确的,但我并不完全确定我知道到底发生了什么。

    12个月平行期的度量如下:

    Sum Invoice Amount 12 Months Ago =
    CALCULATE (
        SUM ( FactCustomerTransaction[InvoiceAmountDollars] ),
        PARALLELPERIOD ( 'Date'[Date], -12, MONTH )
    )
    

    这就是我想发生的事情。当计算出2015年2月的金额时,该月的所有值都会在发票(多侧)表中检索,并求和以生成“发票金额总和”。将检索日期表中的相同日期减去12个月,并为“12个月前发票金额合计”的这些日期范围生成相同的金额。24个月前也是这样。

    这是因为日期和发票之间存在1-M关系。这是正确的吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Alexis Olson    7 年前

    2015年2月,假设 Year and Month Name 列在您的 'Date' 表,您的筛选上下文是 'Date'[Year and Month Name] = "2015-Feb" . 此筛选器对应于日期 2015-02-01 通过 2015-02-28 在你 'Date'[Date] 列和该筛选在关系中传播,以仅返回 FactCustomerTransaction 桌子在哪里 InvoiceDate 是其中一个日期,然后求和仅与这些行对应的金额。

    当你添加 PARALLELPERIOD ,除了匹配日期后,它的工作方式相同 2015-02-01 通过 2015-02-28 对应于 '日期'[年和月名称]=“2015年2月” 它将这些日期向后移动12个月,然后在关系中传播这些移动的日期。