内置函数覆盖了大部分需求,但遇到本单位特有的计算规则时,写一个自定义函数会更省事。
自定义函数是什么
它是一段写在宏编辑器里的代码,可以在单元格里像普通公式一样调用。输入函数名与参数,就得到计算结果。区别在于逻辑由你自己定义,因此能处理内置函数覆盖不到的场景。
结构与两个要素
自定义函数包含参数与返回值。参数是传进去的数据,返回值是算出来的结果。写好之后单元格里写函数名加括号并通过参数,就能得到结果,与使用内置函数没有区别。
三个实用示例思路
按层级折算价格:传入数量与层级,返回折算后的单价;提取编号中的年份:传入编号,返回其中一段;判断是否在有效期内:传入日期,返回是或否。三个例子都不复杂,却能显著减少手工计算。
与普通宏的区别
普通宏是执行动作,比如设置格式、导出文件;自定义函数是返回一个值,用于单元格计算。两者可以配合:宏负责批量处理,函数负责单格计算。
使用上的三个限制
自定义函数不能修改工作表内容,只能返回值;文件发给别人时,对方也需要启用宏才能看到结果;运算比内置函数慢,数据量大时要注意性能。
怎么让函数更稳
对参数做检查,例如日期是否合法、数量是否为空;出错时返回明确提示而不是错误值;把说明写在函数里,方便他人理解用途。
什么时候不该用自定义函数
能用内置函数组合解决的就不要自己写,内置函数更快也更稳。只有规则确实特殊、并且会长期反复使用时,才值得写自定义函数。
团队共享的做法
把自定义函数放在模板文件里一起分发,并写一份简短说明:函数名、参数含义、使用示例。WPS的宏文件可以保存注释,交接时比口头讲解可靠得多。
| 项目 | 说明 | 注意点 |
|---|---|---|
| 参数 | 传入的数据 | 需做合法性检查 |
| 返回值 | 算出的结果 | 不能修改表格 |
| 调用 | 像公式一样使用 | 需启用宏 |
| 共享 | 随模板分发 | 附使用说明 |
先算清楚再封装
写函数之前先用普通公式把规则验证一遍,确认结果正确再翻译成函数。WPS表格里可以并排展示手工计算与函数结果,核对一致后再投入使用,能避免把错误规则固化下来。
自定义函数是把业务规则固化进表格的方式。把WPS宏里的函数写法掌握之后,那些每年都要手动算一遍的规则,就可以交给一个名字来处理。
