我渴望使用DAX在Power BI中创建一个计算列。 从我的表中以
的形式projects valid_date target
2M 03/24/2019 0.9
3D 03/25/2019 1
5K 03/25/2019 0.9
2M 03/26/2019 0.9
3D 03/26/2019 0.5
5K 03/24/2019 0.6
... ... ...
我希望生成一个保留目标值的cloumn,但前提是它是每个不同项目的最新“ valid_date”之一。
结果(“ latest_target”)应如下所示:
projects valid_date target latest_target
2M 03/24/2019 0.9 NULL
3D 03/25/2019 1 NULL
5K 03/25/2019 0.9 0.9
2M 03/26/2019 0.9 0.9
3D 03/26/2019 0.5 0.5
5K 03/24/2019 0.6 NULL
... ... ... ...
此类列的DAX公式是什么样的?我已经尝试了一些公式,但是由于我缺乏将T-SQL想法有效地转换为DAX的经验,因此我认为在此处共享这些想法没有帮助。
答案 0 :(得分:2)
假设您的表名是“ My_Table”:
Latest Target =
VAR
Latest_Date = CALCULATE(MAX(My_Table[valid_date]), ALLEXCEPT(My_Table[projects]))
RETURN
IF(My_Table[valid_date]=Latest_Date, My_Table[target])
工作原理: 首先,我们找到每个“项目”的最新(最长)日期。 ALLEXCEPT允许我们执行此操作-对于每个记录,我们看到整个表已被该记录“项目”过滤。 -然后,通过比较最大日期和记录的日期,我们可以确定它是否是最新的。
请确保根据您的需要调整新列的小数位数,因为默认情况下它可能设置为0。