优秀的编程知识分享平台

网站首页 > 技术文章 正文

Power Qeruy M语言 List.Generate 语法结构 第十三集

nanyue 2024-08-14 20:26:32 技术文章 11 ℃

在Power Query的M语言中,List.Generate函数是一种强大的工具,用于生成自定义列表。List.Generate通过定义初始值、条件、下一步和可选的转换函数来生成一个列表。

List.Generate的基本语法结构如下:

List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list

  • initial: 生成列表的初始值。
  • condition: 用于确定是否继续生成下一个值的条件函数。
  • next: 用于生成下一个值的函数。
  • selector(可选):用于从生成的值中选择所需部分的函数。

示例

假设我们希望生成一个从1开始的整数列表,直到值大于10为止,每次增加2。可以使用以下代码:

let

result = List.Generate(

() => 1, // initial: 初始值为1

each _ <= 10, // condition: 条件为当前值小于等于10

each _ + 2 // next: 每次递增2

)

in

result

这段代码将生成以下列表:

结果

生成的列表

1

2

3

4

5

6

7

8

9

10

带选择器的示例

如果我们希望生成的列表包含自定义的记录结构,例如生成一个包含日期和对应值的列表,可以使用selector:

let

startDate = #date(2023, 1, 1),

result = List.Generate(

() => [Date = startDate, Value = 1], // initial: 包含日期和初始值的记录

each [Value] <= 5, // condition: 条件为Value小于等于5

each [Date = Date.AddDays([Date], 1), Value = [Value] + 1], // next: 日期加一天,值加1

each [Date] // selector: 只选择日期部分

)

in

result

这段代码将生成以下列表:

结果

生成的列表

2023-01-01

2023-01-02

2023-01-03

2023-01-04

2023-01-05

通过 List.Generate 函数,你可以灵活地创建各种自定义列表,满足不同的数据处理需求。这个函数特别适用于需要基于复杂逻辑生成序列或记录的情况,充分发挥了Power Query的强大数据处理能力。

Tags:

最近发表
标签列表