你现在的位置:
函数 PIVOTBY直接创建数据透视表效果
一、函数概述
PIVOTBY 是 Excel 365 新增的强大函数,它允许您通过公式直接创建数据透视表效果,无需手动插入透视表。与 GROUPBY 相比,PIVOTBY 支持双维度交叉分组(行+列),实现更复杂的数据分析 。
核心优势:
- ✅ 自动刷新:公式化操作,数据源更新结果自动更新
- ✅ 多表透视:可配合 VSTACK 合并多个工作表数据
- ✅ 透视文本:支持文本聚合(如 ARRAYTOTEXT)
- ✅ 动态数组:结果自动扩展填充
二、语法结构
基础语法(4个必需参数)
=PIVOTBY(行字段, 列字段, 值字段, 函数)
完整语法(11个参数)
=PIVOTBY(
行字段, ← 必需:行方向分组数据
列字段, ← 必需:列方向分组数据(可为空)
值字段, ← 必需:要聚合的数据
函数, ← 必需:聚合方式(SUM/AVERAGE/COUNT等)
[是否具有标头], ← 可选:0=无, 1=有但隐藏, 2=有且显示, 3=有且显示+排序
[行总计选项], ← 可选:0=无, 1=总计, 2=小计+总计
[行字段排序方式], ← 可选:正数=升序, 负数=降序
[列总计选项], ← 可选:同上
[列字段排序方式], ← 可选:同上
[筛选条件], ← 可选:布尔值数组过滤数据
[相对占比] ← 可选:计算百分比基准
)
三、参数详解
| 参数 | 必需 | 说明 |
|---|---|---|
| row_fields | 是 | 行方向分组依据的列数据 |
| col_fields | 是 | 列方向分组依据的列数据(一维分析时留空) |
| values | 是 | 需要聚合计算的数值列 |
| function | 是 | 聚合函数(SUM/AVERAGE/COUNT/MAX/MIN/PERCENTOF等) |
| field_headers | 否 | 是否包含标题行(推荐用3) |
| row_total_depth | 否 | 行方向总计深度(0/1/2) |
| row_sort_order | 否 | 行排序规则(列索引号,负数为降序) |
| col_total_depth | 否 | 列方向总计深度(0/1/2) |
| col_sort_order | 否 | 列排序规则 |
| filter_array | 否 | 筛选条件数组 |
| relative_to | 否 | 百分比计算基准 |
四、实用示例
示例 1:按销售员分类汇总(一维分析)
=PIVOTBY(C7:C11, , F7:F11, SUM)
- C7:C11:销售员字段(行)
- 留空:无列字段(一维汇总)
- F7:F11:销售额字段
- SUM:求和
效果:生成销售员 × 销售额的汇总表
示例 2:按产品类别和地区交叉透视(二维分析)
=PIVOTBY(D7:D11, E7:E11, F7:F11, SUM)
- D7:D11:产品类别(行)
- E7:E11:地区(列)
- F7:F11:销售额
- SUM:求和
效果:生成产品类别 × 地区的交叉透视表
示例 3:多表合并透视
将7月、8月、9月三个表合并透视:
=PIVOTBY(
VSTACK('7月:9月'!A2:A30), ← 合并日期作为行
VSTACK('7月:9月'!B2:B30), ← 合并产品作为列
VSTACK('7月:9月'!C2:C30), ← 合并销量作为值
SUM
)
示例 4:文本透视(值班表转换)
将一维值班表转为二维显示:
=PIVOTBY(A2:A19, B2:B19, C2:C19, ARRAYTOTEXT, , 0, , 0)
- ARRAYTOTEXT:将多个文本用逗号合并
- ,0,,0:不显示行总计和列总计
示例 5:带小计和排序的复杂分析
=PIVOTBY(
运动观众[[运动]:[地区]], ← 多列行字段
运动观众[年份], ← 列字段
运动观众[观众], ← 值字段
SUM, ← 聚合方式
, ← 跳过field_headers
2, ← 显示小计和总计
3 ← 按第3列升序排序
)
示例 6:计算百分比占比
=PIVOTBY(
运动观众[运动],
运动观众[年份],
运动观众[观众],
PERCENTOF, ← 百分比函数
, ← 跳过
, ← 跳过
2, ← 按值排序
, ← 跳过
, ← 跳过
, ← 跳过
2 ← 相对于总计
)
效果:显示各运动项目占年度总观众的百分比
五、注意事项
| 注意点 | 说明 |
|---|---|
| 版本要求 | 仅 Excel 365 最新版本支持,Excel 2024及更早版本无此函数 |
| #SPILL! 错误 | 结果区域被占用时显示,需清空下方单元格 |
| 动态数组 | 结果自动扩展,不可在区域内插入内容 |
| 多列支持 | 行字段和列字段均可选择多列 |
| 高阶函数 | 支持 LAMBDA 自定义聚合逻辑 |
六、与 GROUPBY 的区别
| 特性 | GROUPBY | PIVOTBY |
|---|---|---|
| 维度 | 仅行分组(一维) | 行+列分组(二维) |
| 场景 | 简单分类汇总 | 交叉透视分析 |
| 参数数量 | 7个 | 11个 |
| 关系 | 基础版 | 加强版(包含GROUPBY所有功能) |
七、最佳实践建议
- 使用表格结构化数据:将数据源转为 Excel 表格(Ctrl+T),公式会自动扩展
- 配合其他新函数:
VSTACK/HSTACK:多表合并CHOOSECOLS:选择特定列LET:定义变量简化公式
- 条件格式美化:对总计行/小计行设置不同背景色
- 启用自动换行:文本透视时需设置单元格格式

发表回复