LOOP查找M查询中的值

问题描述

我有以下数据表:

enter image description here

我需要在超级查询编辑器中使用某些规则创建一个名为FINAL VALUE的列:

  • 最终值是根据COUNTRY创建的
  • 如果VALUE大于100,则将采用先前的值
  • 如果以前的值(没有以前的值,例如202001)都大于100,则为100

所以决赛桌应该像这样:

enter image description here

我对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)