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

如何在M/PowerQuery列表中按索引位置选取多个元素

M语言列表多元素选取方法

M语言(Power Query 公式语言)没有提供类似其他编程语言的:切片运算符,也不支持直接在{}下标内传入多个索引取值,你可以通过内置的List系列函数实现对应需求,以下是不同场景的实现方式:

按指定多个索引提取元素

如果你需要提取任意指定索引(支持不连续)的元素,可以通过List.Transform遍历索引列表取值:
示例:从{"A", "B", "C"}中提取索引0和2对应的元素

let
    源 = {"A", "B", "C"},
    目标索引列表 = {0, 2},
    结果 = List.Transform(目标索引列表, (idx) => 源{idx})
in
    结果

上述代码返回结果为{"A", "C"}

提取连续区间元素

如果要实现切片效果,使用List.Range函数即可,语法为List.Range(待处理列表, 起始索引, 提取长度),省略提取长度参数时会默认从起始索引取到列表末尾。
示例:提取索引1到末尾的所有元素

List.Range({"A", "B", "C"}, 1)

返回结果为{"B", "C"}
补充便捷函数:

  • 提取前N个元素:List.Take(列表, N)
  • 跳过前N个元素取剩余内容:List.Skip(列表, N)

按值条件筛选元素

如果需要按元素本身的取值规则筛选,使用List.Select函数:
示例:筛选所有不等于"B"的元素

List.Select({"A", "B", "C"}, (item) => item <> "B")

返回结果为{"A", "C"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:01