You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power M列表非1步长枚举咨询:如何生成{0,25,50,…250}序列

在Power Query M中生成步长为25的序列{0, 25, 50, …, 250}

嘿,这个问题我太熟悉了!默认的{x..y}语法确实只能生成步长为1的序列,但要实现自定义步长的序列,Power Query M里有好几种简单又靠谱的方式,我给你一一拆解:

方法1:用List.Generate自定义生成逻辑(最灵活)

这个函数可以完全掌控序列的生成规则,完美适配你的需求:

List.Generate(
    () => 0,          // 序列的起始值
    each _ <= 250,    // 终止判断:只要当前值≤250就继续生成
    each _ + 25       // 每次迭代的步长:加25
)

运行这段代码就能直接得到{0, 25, 50, ..., 250},之后要调整起始值、终止值或者步长,直接改对应的参数就行,非常灵活。

方法2:基于步长1的序列做乘法(最简洁)

如果你的序列起始值、步长和终止值是整数倍关系,这种写法会特别清爽:

List.Transform({0..10}, each _ * 25)

原理很简单:先生成0到10的整数序列(一共11个元素),每个元素乘以25之后,正好就是你要的0,25,...,250(因为10*25=250)。这种写法一行搞定,简直是懒人福音。

方法3:用List.Numbers生成等差序列(语义最清晰)

Power Query M其实有专门生成等差序列的函数,完全就是为这种场景设计的:

List.Numbers(0, 11, 25)

参数解释:

  • 第一个参数0:序列的起始值
  • 第二个参数11:序列的总元素个数(从0到250一共11个值)
  • 第三个参数25:步长

如果怕数错元素个数,也可以用公式自动计算长度,这样就算之后修改终止值也不用手动数了:

let
    startValue = 0,
    endValue = 250,
    stepSize = 25,
    itemCount = Number.RoundDown((endValue - startValue)/stepSize) + 1
in
    List.Numbers(startValue, itemCount, stepSize)

这样只要调整startValue、endValue和stepSize三个变量,就能生成任意等差序列,特别适合动态场景。

内容的提问来源于stack exchange,提问作者Hoy Cheung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 17:57:36