数据透视表替代:筛选、去重与分组汇总
数据透视表替代,指的是把 Excel 里用透视表完成的分组与汇总,改成用节点来做。Excel 的透视表把「行」「列」「值」三件事打包在一个界面里;工作流把它拆开了 – 只要行和值用 GroupBy,需要把某个字段铺成列才用 Pivoting。
本章还会讲筛选和去重。这两件事在 Excel 里都是「改变当前视图」,在工作流里都是「产生一张新表」,差异比看起来大。
这个问题通常是这样被描述的
「每个月我要出一张各门店的销售汇总。先把上个月的订单筛出来,去掉几条重复导出的记录,然后插个数据透视表,行放门店,值放数量求和。做完复制到新文件发出去。下个月一模一样再来一遍。」
这三步 – 筛选、去重、汇总 – 是 Excel 用户日常做得最多的操作组合。第 2 章已经用过其中两个节点,这一章把三件事讲透。
本章沿用同一套虚构数据:订单表有订单号、门店编号、商品编号、数量、下单日期;商品表里有品类。
关键事实
| 筛选 | Row Filter(单条件)、Rule-based Row Filter(多条件规则) |
|---|---|
| 去重 | Duplicate Row Filter |
| 分组汇总(长表) | GroupBy |
| 分组汇总(宽表) | Pivoting |
| Excel 对应功能 | 筛选、删除重复项、数据透视表 |
| 共同特点 | 输出的是新表,上游原表完整保留,随时可点开查看 |
| 常用聚合方式 | 求和、计数、平均、最大、最小、去重计数、拼接 |
| 常见搭配 | Joiner、Sorter、Column Filter |
数据透视表替代:GroupBy 还是 Pivoting
这是从 Excel 转过来最容易搞混的一处。先看结果形态就明白了。
原始数据
一行一条明细
| 门店 | 品类 | 数量 |
|---|---|---|
| S001 | 饮料 | 30 |
| S001 | 零食 | 20 |
| S002 | 饮料 | 45 |
| S002 | 零食 | 15 |
四行明细,要按门店看合计。
GroupBy 的结果
长表 · 分组一列 + 值一列
| 门店 | 数量合计 |
|---|---|
| S001 | 50 |
| S002 | 60 |
按门店分组,数量求和。列数不变,行数变少。
Pivoting 的结果
宽表 · 把品类铺成列
| 门店 | 饮料 | 零食 |
|---|---|---|
| S001 | 30 | 20 |
| S002 | 45 | 15 |
品类的每个取值变成一列。这才是 Excel 透视表的形态。
图 1 同一份数据的两种汇总结果。区别只在于「有没有把某个字段铺成列」。
问自己一句:结果表的列,是不是由数据内容决定的?
如果列固定(门店、数量合计),用 GroupBy。如果列要随数据变(有几个品类就出几列),用 Pivoting。
实际项目里 GroupBy 用得远比 Pivoting 多。因为 Pivoting 的列数不稳定 – 下个月多了一个新品类,结果表就多一列,下游节点可能因此报错。做自动化流程时,长表比宽表安全。
做法上,GroupBy 的配置分两步:先选分组列(按什么分组),再选聚合列和聚合方式(对哪一列做什么运算)。Pivoting 多一步,还要选透视列(哪个字段铺成列)。
一个 Excel 用户容易漏的能力:GroupBy 可以对同一列同时做多种聚合,也可以对不同列做不同聚合 – 比如门店分组后,数量求和、订单号计数、单价取平均,三件事在一个节点里配完。Excel 透视表里要拖三次值字段才行。
筛选:和 Excel 的根本差异
Excel 里点筛选,是把不符合条件的行藏起来。原数据一行没少,取消筛选就回来了。
工作流里的 Row Filter 不是藏,是输出一张只包含符合条件那些行的新表。被过滤掉的行不进入下游。
Excel · 藏起来
同一张表,改变显示
- 3 月 · S001 · 30
- 2 月 · S001 · 22
- 3 月 · S002 · 45
- 4 月 · S002 · 18
工作流 · 出新表
上游原表完整保留
- 3 月 · S001 · 30
- 3 月 · S002 · 45
- 上游节点里,另外两行还在
图 2 两种筛选模型。工作流里「数据没了」是错觉,它在上游节点手里。
这个差异带来一个实际好处:筛选条件是写下来的,不是点出来的。Excel 里你上个月勾了哪几个日期,三个月后没人记得;工作流里那个条件明明白白写在 Row Filter 的配置里,谁打开都能看见。
单条件用 Row Filter,多条件用 Rule-based Row Filter
只按一列筛(比如日期在某个区间、金额大于某个数),用 Row Filter。
要写「A 列等于甲 或 B 列大于乙」这类组合条件,用 Rule-based Row Filter – 它让你按规则写表达式,一个节点里可以写多条规则。
去重:被删掉的行去哪了
Excel 的「删除重复项」是破坏性的:点下去数据就没了,只能靠撤销找回来,而且它不会告诉你删掉的是哪些。
Duplicate Row Filter 的默认行为和 Excel 一样 – 保留每组重复里的一条。但它多了一个选项:不删除,而是保留全部行并加一列标记,标出哪些是唯一的、哪些是被选中保留的、哪些是重复的。
第一次处理某份数据时,先用标记模式跑一遍,看清楚重复到底是什么样的 – 是完全一样的两行,还是只有关键字段重复而其他字段不同?这两种情况的处理方式完全不同。
看明白之后再决定是直接去重,还是先修数据。直接删掉的问题在于:你不知道自己删了什么。
这一点和第 3 章讲的 Joiner 未匹配端口是同一个思路:让异常可见,而不是让它静默消失。对做审计和对账的人来说,这个习惯的价值远超省下的那几分钟。
数据透视表替代:该用哪个
| 场景 | Excel 做法 | iModel 做法 | 该用哪个 |
|---|---|---|---|
| 临时看某个门店的合计 | 筛一下就看到了 | 要建两个节点 | Excel |
| 每月固定出汇总表 | 每次重做透视表 | 建一次,之后点执行 | iModel |
| 结果要交给下一步继续算 | 透视表不好当数据源 | 输出就是标准数据表 | iModel |
| 需要记录筛了什么条件 | 点选记录不下来 | 条件写在节点配置里 | iModel |
| 想知道去重删掉了哪些 | 删完就没了 | 可保留并标记 | iModel |
| 拖着字段来回试不同角度 | 透视表拖拽很快 | 改配置要重跑 | Excel |
| 一次做多种聚合 | 要拖多次值字段 | 一个节点配完 | iModel |
| 数据量大、每次都卡 | 透视表刷新慢 | 正常处理 | iModel |
第四列是重点。探索阶段拖着字段来回试,Excel 透视表的交互效率仍然更高;固定下来、要重复出的报表,才值得搬到工作流里。
常见的适应难点
难点一:「数据被我删掉了吗」
用完 Row Filter 或 Duplicate Row Filter,看到行数少了一大截,本能反应是数据没了。
没有。点开上游那个节点的输出,完整数据还在。工作流里每个节点都保留自己的输出结果,删除是不可能发生的事 – 除非你去改源文件。这一点和 Excel 完全不同,也是工作流敢让你随便试的原因。
难点二:Pivoting 出来的列名很奇怪
Pivoting 的输出列名通常是「透视值 + 聚合方式」拼起来的,比如「饮料+Sum(数量)」。这是节点的默认命名规则,不是配错了。
如果结果要发给别人看,在后面接一个 Column Renamer 改成正常的名字。这也是为什么前面建议做自动化流程时优先用 GroupBy – 长表的列名是固定的,不需要每次改。
难点三:分组之后其他列不见了
GroupBy 只输出分组列和聚合列,没参与的列不会出现在结果里。这是设计如此 – 一个门店有二十条订单,那二十条的订单号该显示哪一个?
如果确实需要保留某列,把它也加进聚合,选「拼接」或「取第一个」这类聚合方式。
常见问题
相关内容
本章讲的是「选哪个、为什么」。每个节点的参数具体怎么配,在节点手册里:GroupBy、Pivoting、Row Filter、Duplicate Row Filter。
下一章讲公式 – 从 Excel 的单元格思维转到工作流的列思维,是这个系列里概念差异最大的一章。
装好就能跟着做
iModel Analytics Studio 是开源版本,免费、不限功能与使用时长。Windows 与麒麟、统信环境都是双击安装,本章的例子用几百行数据就能跑通。
下载六章合订 PDF 完整版 · 34 页,含全部图表,无需留资。

