希望在此论坛上从 Power BI 专家那里获得一些帮助。我有一个数据表,我正在尝试获取 Power BI 中的“目标结果”列。
日期 | 账户 | 旗帜 | 目标结果 |
---|---|---|---|
1/3/23 | ABC | 1 | 1 |
1/3/23 | 防御 | 1 | 1 |
1/3/23 | GHI | 1 | 1 |
1/3/23 | JKL | 1 | 1 |
1/4/23 | ABC | 1 | 2 |
1/4/23 | 防御 | 0 | 0 |
1/4/23 | GHI | 0 | 0 |
1/4/23 | JKL | 1 | 2 |
1/5/23 | ABC | 1 | 3 |
1/5/23 | 防御 | 1 | 1 |
1/4/23 | GHI | 0 | 0 |
1/4/23 | JKL | 1 | 3 |
通过谷歌搜索,我相信这是一个标准的间隙和岛屿类型问题,但是,鉴于我不太擅长 DAX,我似乎无法调整我发现的适合我的用例的内容。
从表中可以看出,目标结果列将计算特定帐户的 Flag = 1 的连续天数,但如果帐户的 Flag 列重置为 0,则重置为 0。例如帐户 ABC 23 年 1 月 5 日显示 3,因为每一天的 Flag = 1,但 DEF 在同一天显示 1,因为该帐户在 23 年 1 月 4 日的 Flag = 0,并且当 Flag 时,目标结果在 23 年 1 月 5 日 = 1 = 1.
我不太确定从哪里开始,所以非常感谢任何帮助。 非常感谢。
尝试:
Target Result =
var curD = [Date]
var curA = [Account]
var lastReset = CALCULATE(MAX([Date]), ALL('Gap'), 'Gap'[Account] = curA && 'Gap'[Date] <= curD && 'Gap'[Flag] = 0)
var result = CALCULATE(COUNTROWS('Gap'), ALL('Gap'), 'Gap'[Account] = curA && 'Gap'[Date] > lastReset && 'Gap'[Date] <= curD)
RETURN COALESCE(result, 0)