【问题标题】:How to find the value current row value if current row value match with previous row value in power bi?如果当前行值与power bi中的前一行值匹配,如何找到当前行值?
【发布时间】:2020-05-03 00:32:59
【问题描述】:
如果条件与前一行值匹配,我正在尝试查找当前行值
我的情况是
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"))
输出:
但预期的输出是
【问题讨论】:
标签:
powerbi
powerbi-desktop
powerbi-embedded
powerbi-datasource
powerbi-custom-visuals
【解决方案1】:
最后,我解决了使用索引的概念,我的意思是我已经创建了索引列,用于比较当前值和下一个值
代码:
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
输出: