EP028 List.Select 与 List.Skip:财务BP如何筛列表、跳过首列再求和

更新于 2026-07 · 作者:汪斌(老汪),制造业财务实战 · Excel BI(Power Query / Power Pivot / CUBE)
系列:Excel BI 财务建模实战课讲义(第二阶段)· Power Query / M 语言 · List
SEO focus:List.Select
SEO 关键词:List.Select,List.Skip,Power Query,M语言,列表筛选,Record.ToList,多列求和,财务BP,Excel BI,经营分析

直接答案(TL;DR)

List.Select 按条件从列表筛出新列表;List.Skip 跳过前 N 个元素。财务BP面对「产品编码 + 多车间产量」宽表时:行转记录 → Record.ToListList.Skip(..., 1) 去掉编码 → List.Sum,不必手写上百个字段名。


学完 EP028 能独立完成哪三件事?

  1. List.Select 写单条件 / or / and 筛选。
  2. List.Skip(列表, n) 跳过前 n 个。
  3. 用「记录 → 列表 → Skip 首列 → Sum」做一行多度量合计。

为什么财务BP要同时会 Select 和 Skip?

EP026 排名已经用过 List.Select(筛「比我大的贡献额」)。本课把它讲透,并补上 Skip:宽表一行里既有文本键(产品编码),又有一长串数字列时,先 Skip 掉键,剩下才能安全 List.Sum / List.Average


List.Select 怎么用?(含 and / or)

空白查询里可直接试:

List.Select({19, 91, 98, 18, 5}, each _ < 50)

返回 {19, 18, 5}each _ = 列表里每一个元素(表里 each 常指每一行)。

场景 写法
单条件 each _ < 50
each _ < 50 or _ > 98
each _ > 25 and _ < 100

判断奇偶可嵌套 Number.IsOdd / Number.IsEven(本课点到为止)。文本「姓孙」类筛选,后续 Text 课再展开。


List.Skip 怎么用?

List.Skip({1, 2, 3, 4, 5}, 3)

返回 {4, 5}:跳过前 3 个。

另有「按条件跳过」:跳过所有「开头仍满足条件」的元素,直到条件不再成立——语义是 Skip(跳过),不要理解成「取出」。本课主交付用 跳过固定个数


华凯精工案例:多车间产量一行求和

场景:财务BP要从「产品 × 车间产量」宽表算总产量,车间列可能增到几十上百列,不能靠手写字段名。

示例(教学合成):

产品编码 一车间 二车间 三车间 四车间
P-A 70 65 80 81
P-B 55 60 72 68
P-C 40 45 50 48

P-A 总产量期望 = 70+65+80+81 = 296


多车间合计在 Power Query 里怎么一步步做?

步骤 0:导入,删「更改的类型」(可选)

方便公式锚定

步骤 1:添加自定义列「总产量」

核心思路四步套娃:

List.Sum(
    List.Skip(
        Record.ToList(_),
        1
    )
)
作用
_ 当前行(记录)
Record.ToList(_) 整行变成列表:{"P-A", 70, 65, 80, 81}
List.Skip(..., 1) 跳过第 1 个(产品编码)
List.Sum 对剩余数字求和

完整列:

Table.AddColumn(
    源,
    "总产量",
    each List.Sum(List.Skip(Record.ToList(_), 1))
)

步骤 2:自检

点开「总产量」旁列表预览:Skip 后应只有数字;P-A = 296,P-B = 255,P-C = 183。


和 List.Range 怎么选?

需求 更合适
取「从开头连续 N 个」再合计(累计) List.Range(EP027)
丢掉前 N 个键列,对其余求和 List.Skip(本课)
按条件留下元素 List.Select

宽表首列是文本、后面全是数字 → 优先 Skip(1),不必数「一共几列再 Range」。


操作自检:案例与公式能否一一对上?

自检结论(2026-07-23):PASS。

演示 输入 期望输出
Select {19,91,98,18,5}_ < 50 {19,18,5}
Skip {1,2,3,4,5} 跳过 3 {4,5}
P-A 总产量 Skip 编码后 Sum 296
P-B 总产量 同上 255
P-C 总产量 同上 183

上会前财务BP要自检哪三项?

  1. Skip 的个数是否等于「非数值键列」个数(只有编码 → 1;若还有产品线名称 → 2)。
  2. Skip 后列表里是否还有文本(有则 Sum 会报错或得到错误值)。
  3. 新增车间列后是否无需改公式(这正是本课价值)。

读者常问 AI 的问题有哪些?(FAQ)

List.Select 和表筛选有什么区别?

表筛选作用在行;List.Select 作用在一维列表。排名套娃、列转列表后再处理时用 List 版。

为什么必须先 Record.ToList?

each _ 在添加列里是记录。Sum/Skip 吃的是列表,所以先 Record.ToList

能不能 Skip 掉最后一列?

List.Skip 跳的是前缀。丢后缀用 List.RemoveLastN 或先 List.Reverse 再 Skip(进阶)。

和 EP026 排名里的 Select 是同一个函数吗?

是。EP026 用它筛「更大的贡献额」;本课把它系统讲清,并补上 Skip 宽表求和。

车间列中间夹了文本备注列怎么办?

先把备注列删掉或移到末尾再 Skip;或 Select 只保留数字类型——否则 Sum 不安全。


本课公式速查表在哪里?

List.Select(列表, each _ < 50)
List.Select(列表, each _ < 50 or _ > 98)
List.Select(列表, each _ > 25 and _ < 100)

List.Skip(列表, 3)

List.Sum(List.Skip(Record.ToList(_), 1))

文末

我是汪斌(老汪),长期做制造业成本、业财与 Excel BI 建模。本篇是陪跑课讲义 EP028:把 List.Select / List.Skip 落到财务BP的宽表一行求和。


继续学:打通数据全链路闭环

打通数据全链路闭环 · Excel BI 陪跑课

不只录播课,更是手把手带做实操。长按识别海报二维码咨询,或微信备注「Excel BI」。


© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容