我正在尝试使用Power BI M语言进行while循环。但是所有的逻辑都笼罩着我!
您如何将这样一个非常简单的循环转换为M语言?
while X == True:
do abcdef
if Y == True:
end
非常感谢!
答案 0 :(得分:1)
M中的循环最好用List.Generate
function处理。
本文在解释其工作原理方面做得非常出色:
https://potyarkin.ml/posts/2017/loops-in-power-query-m-language/
使用此功能,让我们看一下while循环的更具体实现,例如查找小于1000的斐波那契数。
a = 1
b = 1
while b < 1000
b = a + b
a = b - a
将这样翻译成M:
let
data =
List.Generate(
() => [ a = 1, b = 1 ],
each [b] < 1000,
each [ b = [a] + [b], a = [b] ]
),
output = Table.FromRecords(data)[a]
in output
我不确定处理中断条件Y
的最佳方法。这可能取决于特定的问题。