值更改时返回

问题描述 投票:0回答:1

这是我的数据

SerialNumber  Reading  Date
A             4        10/30/2019
A             4        10/29/2019
A             3        10/28/2019
B             11       10/30/2019
B             9        10/29/2019
B             6        10/28/2019
C             25       10/30/2019
C             25       10/15/2019
C             25       10/13/2019
C             21       10/9/2019
C             21       10/3/2019

我需要能够创建度量或计算列,以告诉我每个序列号上次更改的日期。所以我需要这个:

SerialNumber  Reading  Date          DateChanged
A             4        10/30/2019    10/28/2019
A             4        10/29/2019    10/28/2019
A             3        10/28/2019    10/28/2019
B             11       10/30/2019    10/29/2019
B             9        10/29/2019    10/29/2019
B             6        10/28/2019    10/29/2019
C             25       10/30/2019    10/9/2019
C             25       10/15/2019    10/9/2019
C             25       10/13/2019    10/9/2019
C             21       10/9/2019     10/9/2019
C             21       10/3/2019     10/9/2019

这是我尝试过的代码,但它只给了我每个序列号的最大日期

Column = CALCULATE(
MAX(
SMU_Lookup[Date]),
FILTER(
ALL(SMU_Lookup),
 SMU_Lookup[Reading] < MAX(SMU_Lookup[Reading])
 && SMU_Lookup[SerialNumber] = EARLIER(SMU_Lookup[SerialNumber])
)
)

提前感谢!

dax
1个回答
0
投票

我认为您正在寻找这样的东西:

Column =
VAR date_Last_change =
    CALCULATE (
        MAX ( SMU_Lookup[Date] ),
        ALLEXCEPT ( 'SMU_Lookup', SMU_Lookup[SerialNumber] ),
        'SMU_Lookup'[Reading] <> EARLIER ( SMU_Lookup[Reading] ),
        'SMU_Lookup'[Date] < EARLIER ( SMU_Lookup[Date] )
    )
RETURN
    IF ( ISBLANK ( date_Last_change ), SMU_Lookup[Date], date_Last_change )
  1. ALLEXCEPT函数返回一个表,其中的行的SerialNumber与当前行的SerialNumber相同。
  2. 下一个过滤器'SMU_Lookup'[Reading] <> EARLIER ( SMU_Lookup[Reading] )将表进一步过滤到读数与当前行中的读数不同(更大或更小)的行。
  3. 最后一个过滤器'SMU_Lookup'[Date] < EARLIER ( SMU_Lookup[Date]确保表中的日期小于当前行中的日期。
  4. 然后,MAX函数将计算出由过滤器返回的表的最大日期,该日期是最近的读数更改日期。
  5. RETURN语句后的IF函数可确保在没有最新更改且date_Laste_change变量为空时返回当前行中的日期。
© www.soinside.com 2019 - 2024. All rights reserved.