问题描述
我有以下数据表:
我需要在超级查询编辑器中使用某些规则创建一个名为FINAL VALUE的列:
- 最终值是根据COUNTRY创建的
- 如果VALUE大于100,则将采用先前的值
- 如果以前的值(没有以前的值,例如202001)都大于100,则为100
所以决赛桌应该像这样:
我对COUNTRY和DATE进行排序,然后尝试在M Query中应用循环。由于我不熟悉M查询中的函数,因此很难弄清楚。感谢您的帮助。谢谢。
解决方法
我相信您在DAX方面会更好。您可以创建一个新的列,如下所示:
Final Value =
var curCountry = TableCountry[Country]
var curDate = TableCountry[Date]
var prevDate = CALCULATE(MAX(TableCountry[Date]),FILTER(TableCountry,curDate >= TableCountry[Date] && curCountry = TableCountry[Country] && TableCountry[Value] <=100))
return LOOKUPVALUE(TableCountry[Value],TableCountry[Country],curCountry,TableCountry[Date],prevDate,100)