Power BI while循环

时间:2019-01-04 15:20:16

标签: while-loop powerbi m

我正在尝试使用Power BI M语言进行while循环。但是所有的逻辑都笼罩着我!

您如何将这样一个非常简单的循环转换为M语言?

while X == True: do abcdef if Y == True: end

非常感谢!

1 个答案:

答案 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的最佳方法。这可能取决于特定的问题。