WPS表格函数编写方法(二)
Lv.1 新人创作者
方法六:数组公式
动态数组通俗理解,就是把数组公式返回的多个结果,动态"溢出"到对应大小的单元格区域中。它包含两个要素:一是数组公式,二是结果自动动态溢出。数组公式是对一组或多组值执行多重计算的公式,可以返回单个结果或多个结果。它是WPS表格中处理批量计算和多条件统计的高级技巧。
➊操作步骤
选中目标单元格(若返回多个结果,需选中整个结果区域)
输入数组公式
按 Ctrl+Shift+Enter 确认,WPS 自动在公式外添加大括号 {}
若使用动态数组函数(如 FILTER、SORT、UNIQUE 等),直接按 Enter 即可
注意:在WPS表格2023年以后的新版本中,部分数组公式已支持直接 Enter 生效(动态数组功能),无需 Ctrl+Shift+Enter。
常用动态数组函数:
➋数组公式 vs 普通公式
➌示例
1.许多数组公式可以用普通函数等价替代。下表展示数组写法和等价替代方案:
SUMPRODUCT 函数天然支持数组运算,是数组公式最常用的等价替代方案,无需 Ctrl+Shift+Enter 即可生效。
2.FILTER 函数用法演示
基础用法 —— 筛选出销售员“张三”的所有销售记录
公式=FILTER(销售数据!$A$2:$G$10, 销售数据!$B$2:$B$10="张三")
月份 | 销售员 | 产品 | 单价 | 数量 | 金额 | 地区 |
1月 | 张三 | 笔记本电脑 | 5,500 | 12 | 66,000 | 华东 |
2月 | 张三 | 平板电脑 | 2,800 | 18 | 50,400 | 华东 |
3月 | 张三 | 手机 | 3,500 | 20 | 70,000 | 华东 |
说明: | 基础用法:FILTER 根据“销售员=张三”条件筛选出整行记录,结果自动向下溢出。 | |||||
多条件 AND(用 * 连接)—— 销售员为张三 且 金额>60000
公式=FILTER(销售数据!$A$2:$G$10, (销售数据!$B$2:$B$10="张三")*(销售数据!$F$2:$F$10>60000))
月份 | 销售员 | 产品 | 单价 | 数量 | 金额 | 地区 |
1月 | 张三 | 笔记本电脑 | 5,500 | 12 | 66,000 | 华东 |
3月 | 张三 | 手机 | 3,500 | 20 | 70,000 | 华东 |
说明: | 多条件用 * 表示“且(AND)”:销售员=张三 且 金额>60000,两个条件需同时满足。 | |||||
多条件 OR(用 + 连接)—— 销售员为张三 或 王五
公式=FILTER(销售数据!$A$2:$G$10, (销售数据!$B$2:$B$10="张三")+(销售数据!$B$2:$B$10="王五"))
月份 | 销售员 | 产品 | 单价 | 数量 | 金额 | 地区 |
1月 | 张三 | 笔记本电脑 | 5,500 | 12 | 66,000 | 华东 |
1月 | 王五 | 手机 | 3,500 | 30 | 105,000 | 华北 |
2月 | 张三 | 平板电脑 | 2,800 | 18 | 50,400 | 华东 |
2月 | 王五 | 手机 | 3,500 | 35 | 122,500 | 华北 |
3月 | 张三 | 手机 | 3,500 | 20 | 70,000 | 华东 |
3月 | 王五 | 笔记本电脑 | 5,500 | 10 | 55,000 | 华北 |
说明: | 多条件用 + 表示“或(OR)”:销售员=张三 或 销售员=王五,满足其一即可。 | |||||
只取单列 —— 返回金额>60000 的销售员姓名
公式=FILTER(销售数据!$B$2:$B$10, 销售数据!$F$2:$F$10>60000)
销售员 |
|
|
|
|
|
|
张三 |
|
|
|
|
|
|
李四 |
|
|
|
|
|
|
王五 |
|
|
|
|
|
|
王五 |
|
|
|
|
|
|
张三 |
|
|
|
|
|
|
李四 |
|
|
|
|
|
|
说明: | 若只想要某一列,把“数组”参数改为该列区域即可(此处只返回销售员列)。 | |||||
按产品筛选 —— 产品为“手机”的销售记录
公式=FILTER(销售数据!$A$2:$G$10, 销售数据!$C$2:$C$10="手机")
月份 | 销售员 | 产品 | 单价 | 数量 | 金额 | 地区 |
1月 | 王五 | 手机 | 3,500 | 30 | 105,000 | 华北 |
2月 | 王五 | 手机 | 3,500 | 35 | 122,500 | 华北 |
3月 | 张三 | 手机 | 3,500 | 20 | 70,000 | 华东 |
说明: | 按产品类别筛选:筛选出所有“手机”产品的记录。 | |||||
按月份筛选 —— 2月的销售记录
公式=FILTER(销售数据!$A$2:$G$10, 销售数据!$A$2:$A$10="2月")
月份 | 销售员 | 产品 | 单价 | 数量 | 金额 | 地区 |
2月 | 张三 | 平板电脑 | 2,800 | 18 | 50,400 | 华东 |
2月 | 李四 | 笔记本电脑 | 5,500 | 8 | 44,000 | 华南 |
2月 | 王五 | 手机 | 3,500 | 35 | 122,500 | 华北 |
说明: | 按月份筛选:筛选出所有 2 月的销售记录。 | |||||
➍适用场景
适合多条件统计、矩阵运算、去重计数等高级场景。实际应用中,建议优先使用 SUMIFS、COUNTIFS、SUMPRODUCT 等原生支持区域参数的函数,仅在无法替代时使用数组公式。
方法七:超级表
WPS表格中"超级表"可以用“汇总行”统计数据,公式更直观,且当数据行增减时自动扩展引用范围。
➊操作步骤
选中数据区域,按 Ctrl+T(或点击「插入」选项卡中的「表格」)
2.在弹出的创建表对话框中确认数据范围和表头,点击「确定」
3.在功能区的“表格样式选项”中勾选“汇总行”。
4.可调用“SUBTOTAL”多种统计功能用法。
➋“汇总行”功能
➌示例
将销售数据创建为名为"销售表"的超级表后,统计公式可改写为:
统计项目 | F11单元格结构化引用写法 | F11单元格传统写法 |
求和 | =SUBTOTAL(109,[金额]) | =SUM(F2:F10) |
平均值 | =SUBTOTAL(101,[金额]) | =AVERAGE(F2:F10) |
计数 | =SUBTOTAL(103,[金额]) | =COUNT(F2:F10) |
最大值 | =SUBTOTAL(104,[金额]) | =MAX(F2:F10) |
最小值 | ==SUBTOTAL(105,[金额]) | =MIN(F2:F10) |
➍行内公式
在超级表中,行内计算可用 [@列名] 引用当前行数据。例如金额列的公式可写为:=[@[单价]]*[@[数量]],WPS 会自动填充到每一行,新增行也自动应用。
➎适用场景
适合数据会动态扩展的场景,如持续录入的销售记录、库存清单等。超级表还提供自动筛选、条纹样式、第一列加粗等增强功能,是数据管理的推荐方式。
方法八:跨工作表引用
跨工作表引用是在公式中引用其他工作表的单元格或区域。当数据分布在多个工作表时,通过跨表引用可以在一个工作表中汇总和分析其他表的数据。
➊操作步骤
在目标单元格中输入等号 = 开始公式
切换到源数据所在的工作表(直接点击底部工作表标签)
点击要引用的单元格或拖选区域,WPS 自动生成"工作表名!单元格"格式的引用
继续输入公式其余部分,按 Enter 确认
➋语法格式
基本格式:=工作表名!单元格地址
普通名称:=销售数据!F3
含空格或特殊字符的名称需加单引号:='销售明细 2024'!F3
引用区域:=销售数据!F3:F11
跨表函数:=SUM(销售数据!F3:F11)
➌示例
在汇总表中引用「销售数据」工作表的数据,按月统计销售额:
统计项目 | 引用方式 | 公式 | 结果 |
1月总销售额 | 跨表 SUMIF | =SUMIF(销售数据!A3:A11,"1月",销售数据!F3:F11) | 241000 |
2月总销售额 | 跨表 SUMIF | =SUMIF(销售数据!A3:A11,"2月",销售数据!F3:F11) | 216900 |
3月总销售额 | 跨表 SUMIF | =SUMIF(销售数据!A3:A11,"3月",销售数据!F3:F11) | 186600 |
第一季度总销售额 | 跨表 SUM | =SUM(销售数据!F3:F11) | 644500 |
第一季度平均销售额 | 跨表 AVERAGE | =AVERAGE(销售数据!F3:F11) | 71611.11 |
最高单笔销售额 | 跨表 MAX | =MAX(销售数据!F3:F11) | 122500 |
➍跨多表引用
若需要引用多个连续工作表的相同区域,可使用"三维引用":
公式:=SUM(Sheet1:Sheet3!A1)
含义:对 Sheet1 到 Sheet3 三个工作表的 A1 单元格求和。适合汇总结构相同的多个月度报表。
➎适用场景
适合多表汇总、数据分散在不同工作表的场景。跨表引用使得数据录入和分析可以分离到不同工作表,保持各表职责清晰。
总结与实用技巧
➊方法选择指南
根据不同场景选择最合适的公式编写方法:
场景 | 推荐方法 |
快速输入简单公式 | 方法一:手动输入 |
不熟悉函数语法 | 方法二:插入函数对话框 |
按类别探索可用函数 | 方法三:函数库分类查找 |
提升公式可读性 | 方法四:定义名称引用 |
多条件复杂判断 | 方法五:嵌套函数 |
多条件统计、矩阵运算 | 方法六:数组公式(优先用 UMPRODUCT/SUMIFS 替代) |
数据动态扩展 | 方法七:结构化引用(超级表) |
多表汇总 | 方法八:跨工作表引用 |
➋常用快捷键
快捷键 | 功能 |
F2 | 进入单元格编辑模式 |
F4 | 切换引用类型(绝对/混合/相对) |
F9 | 在编辑栏中计算选中部分公式(调试用) |
Ctrl+Shift+Enter | 输入数组公式 |
Ctrl+T | 将区域转换为超级表 |
Ctrl+F3 | 打开名称管理器 |
Ctrl+`(反引号) | 切换显示公式/结果视图 |
Alt+= | 自动求和(快速插入 SUM) |
➌排错技巧
公式返回 #VALUE!:检查参数类型是否匹配,如文本传给了数值参数
公式返回 #DIV/0!:检查除数是否为零,可用 IFERROR 包裹处理
公式返回 #N/A:检查 VLOOKUP/MATCH 的查找值是否存在于数据中
公式返回 #REF!:检查引用的单元格或区域是否被删除
公式结果不更新:检查「公式」选项卡中的计算选项是否为"自动"
使用「公式」选项卡的「公式求值」功能可逐步查看公式计算过程,定位错误步骤
➍最佳实践
优先使用结构化引用或定义名称,避免硬编码单元格地址
复杂公式拆分为多个辅助列分步计算,便于理解和维护
用 IFERROR 包裹可能出错的公式,避免错误值影响后续计算
善用「公式求值」工具逐步调试复杂嵌套公式
将数据区域创建为超级表,享受自动扩展、筛选和样式等增强功能
Lv.1 新人创作者
Lv.1 新人创作者
Lv.3 优质创作者
Lv.1 新人创作者
Lv.1 新人创作者