1

如果条件与前一行值匹配,我正在尝试查找当前行值

在此处输入图像描述

我的条件是

1) 如果我的 trac 列值是 T645,那么我必须检查下一个事务值是 'T644' 或 'TA63' 或 'T643' 新列中的任何一个,但不是 BZ12。我必须取 T645 列的 TotalPremium 值,其他视图不

我的代码是

sub Value = CALCULATE(SUM('Table'[TotalPremium]),FILTER(ALL('Table'),
        'Table'[trac] = "T645" && EARLIER('Table'[trac])= "T644" || 
        EARLIER ('Table'[trac]) = "TA63" || EARLIER ('Table'[trac]) = "T643" && 
        EARLIER ('Table'[trac]) <> "BZ12" && 'Table'[Stat] = "PS"))

输出:

在此处输入图像描述

但预期输出是

在此处输入图像描述

4

1 回答 1

2

最后,我解决了使用索引概念,我的意思是我创建了索引列来比较当前值和下一个值

代码:

New Val = 
    VAR device = 'Table'[trac]    
    VAR ind = 'Table'[Index]
    VAR preInd= ind-1
    VAR TotalPremiumPreDate  = 
      SUMX(
        FILTER(
          'Table', 'Table'[Index] = preInd && ('Table'[date] >= MIN('Table'[date]) 
          && 'Table'[date] <= MAX('Table'[date]) ) &&
          'Table'[trac] = "T645" && (EARLIER('Table'[trac])= "T644" || 
                EARLIER ('Table'[trac]) = "TA63" || EARLIER ('Table'[trac]) = "T643") && 
                EARLIER ('Table'[trac]) <> "BZ12" && 'Table'[Stat] = "PS"  
        ),
        'Table'[TotalPremium]
    )
    RETURN TotalPremiumPreDate

输出:

在此处输入图像描述

于 2020-01-16T11:24:11.297 回答