十年函数段位进化史:从青铜到传奇王者,一个制造人函数通关之路

Lv.4 核心创作者
以下文章由WPS 灵犀专业版本生成
【金山文档 | WPS云文档】 十年函数段位进化史
https://www.kdocs.cn/l/cmWMQYUCsk49
【金山文档 | WPS云文档】 948 函数段位案例表
https://www.kdocs.cn/l/cqFjPse9lR1a
你有没有想过,掌握Excel函数就像打排位赛?
刚进工厂那会儿,我连SUM都用不利索,每次盘点要手动按计算器。十年过去了,LAMBDA成了我的终极武器——一个自定义函数,把过去几百行公式压缩成一句。
回头看,这十年就是一部函数段位进化史。每个段位,都对应着工厂里一个真实的坑。
今天我把这条路从头到尾走一遍,13个段位,10年光阴,看看你是哪个段位。
一、倔强青铜:SUM、AVERAGE(入职第1年)
场景:仓库盘点
2016年夏天,我刚进公司,仓库主管丢给我一叠厚厚的盘点表:"小古,把这几百行物料的库存金额算一下。"
我盯着那堆数字,老老实实按计算器。按了两个小时,算错了三次。
旁边老员工看不下去了,走过来在我键盘上敲了一行:
=SUM(E2:E9)回车,0.3秒出结果。
那一刻我的感受只有一个字——蠢。
后来我又学会了AVERAGE:
=AVERAGE(D2:D9)算平均单价,不用再一个个加起来除以总数。
📌
能算
。
但这俩函数有个致命问题——它们不管条件。你让它算"3号仓库的螺栓总金额",它做不到。所有数据一锅炖,这就是青铜的局限。
二、秩序白银:COUNT、COUNTA(入职第2年)
场景:订单统计
第二年我调到计划部,每天要统计订单。
老板问:"今天来了多少单?"
我一行行数。数到第200行的时候眼花了,又从头数。
COUNT救了我:
=COUNT(C5:C9)统计有多少个数字,就是有多少笔订单。
但很快发现一个问题——有些订单编号是文本格式(比如"DD-2024-001"),COUNT不认。这时候COUNTA上场:
=COUNTA(A5:A9)不管数字还是文本,只要有内容就数。非空单元格,一个不漏。
📌
会数数了
。
COUNT数数字,COUNTA数非空。看着简单,但直到现在我还天天用。
三、荣耀黄金:TODAY、YEAR、MONTH(入职第3年)
场景:交期管理
第三年,开始管交期。
每次算"距离交货还有几天",我都要手动输入今天的日期。有一天我手抖把日期输错了,算出来交期还剩-30天,差点被生产部长骂死。
TODAY函数,一行搞定:
=TODAY()自动取今天日期,永远不会错。
然后YEAR和MONTH用来拆日期:
=YEAR(C5)
=MONTH(C5)交期日期拆出年和月,按月汇总排产,不用再手动看日历。
尊贵铂金:MID、LEFT、RIGHT
同一时期,我遇到了另一个坑——产品编码解析。
我们的编码规则是"XB-001-0500x1200",前2位是类别,中间3位是序号,后面是规格。要用规格就得把后面那段截出来。
LEFT取左边:
=LEFT(A5,2)MID取中间:
=MID(A5,4,3)RIGHT取右边:
=RIGHT(A5,11)三个函数,把一个编码拆成三段。以前手动拆,500行要拆一下午。现在拖一下公式,10秒搞定。
📌
会取数据了
。日期能拆,编码能截,数据开始听话。
四、永恒钻石:IF、AND、OR(入职第4年)
场景:品质判定
第四年,我开始管IQC来料检验。
检验标准很复杂:外观合格且尺寸合格且硬度合格,才算通过。任何一个不合格,整批退。
以前我在表格里手动标"合格/不合格",眼睛盯着三个结果看,看到最后三个字在眼前跳舞。
IF做判定:
=IF(AND(B5="合格",C5="合格",D5="合格"),"通过","退货")AND要求所有条件同时满足,OR只要一个满足就行。
后来又加了一条规则——如果外观不合格,直接退货,不用看其他项:
=IF(B5="不合格","退货",IF(AND(C5="合格",D5="合格"),"通过","退货"))IF嵌套IF,条件套条件。这公式现在看不算啥,但当时写出来那一刻,我觉得自己进化了。
📌
会判断了
。数据不再是死的数字,而是能自动做决策的活东西。
五、至尊星耀:SUMIFS、MAXIFS、MINIFS(入职第5年)
场景:多维度统计
第五年,数据量暴增。老板要看的报表越来越变态——"1号车间3月份的产量总和""哪个供应商的来料不良率最高""最低加工费是多少"。
以前用SUM+IF,要写数组公式,慢得要死。SUMIFS直接多条件求和:
=SUMIFS(D:D,A:A,F5,B:B,">="&G5,B:B,"<="&H5)车间、时间、产品,三个条件同时卡。
MAXIFS找最大值:
=MAXIFS(D:D,A:A,"1号车间")MINIFS找最小值:
=MINIFS(D:D,A:A,"1号车间")📌
会筛选统计了
。不再是一锅炖,而是精准打击——要什么条件给什么条件。
六、最强王者:XLOOKUP、VLOOKUP(入职第6年)
场景:BOM匹配
第六年,开始搞BOM(物料清单)。
最常见的需求:根据物料编码,从物料主数据表里找到对应的名称、规格、单位。
VLOOKUP是老牌王者:
=VLOOKUP(A15,A6:E10,2,0)但它有个毛病——只能从左往右找。要找的列必须在查找列右边,不然就报错。而且数第几列要手数,数错了就取错数据。
XLOOKUP直接碾压:
三个参数:找什么、在哪找、返回什么。不用数列,不用管左右,还能从右往左找:
=XLOOKUP(A15,A6:A10,B6:B10)会查找引用了
。这是分水岭——会不会VLOOKUP,是"会用Excel"和"不会用Excel"的分界线。而XLOOKUP,是查找函数的终极形态。
七、非凡王者:TAKE、DROP(入职第7年)
场景:动态提取
第七年,数据开始用动态数组了。
老板说:"把最近3条订单给我看看。"
以前要手动筛选+复制。TAKE直接取前N行:
=TAKE(A5:D10,3)DROP反过来,扔掉前N行,取剩下的:
=DROP(A17:D22,3)去掉表头3行,只要数据
无双王者:FILTER、UNIQUE、SORT
同一时期,我遇到了动态数组三件套。
FILTER按条件筛选,不用再点筛选按钮:
=FILTER(A28:D33,A28:A33="1号车间")UNIQUE去重:
=UNIQUE(A39:A44)一键去重,以前这活要用"删除重复项"功能点半天。
SORT排序:
=SORT(FILTER(A28:D33,A28:A33="1号车间"),4,-1)筛选出来直接按第3列降序排。三个函数串一起,一句公式完成"筛选→去重→排序"。
进入动态数组时代
。数据不再是静态的,公式写一次,结果自动更新。
八、绝世王者:BYROW、BYCOL(入职第8年)
场景:逐行计算
第八年,公式越写越长,遇到了一个新问题——每行都要算一遍,但不想拖公式。
比如每行有7天的产量,要算每行最大值:
=BYROW(B5:E8,max)一个公式,同时算完。不用拖,不用填充。
BYCOL同理,按列运算,取最小值:
=BYCOL(B5:E8,min)至圣王者:GROUPBY、PIVOTBY
然后我遇到了GROUPBY——一个函数干掉数据透视表:
=GROUPBY(A14:A26,C14:C26,SUM,3)按A列分组,对C列求和,3表示显示标题合计行。一行公式,不用插透视表,不用刷新。
PIVOTBY更进一步,二维交叉汇总:
=PIVOTBY(A31:A42,B31:B42,C31:C42,SUM)行字段、列字段、值字段、汇总方式,四个参数,交叉表直接生成。
以前这种报表要用透视表拖拽,现在一个公式搞定,而且源数据变了自动更新。
批量运算+一键汇总
。从"逐个单元格"到"整片数据",思维从点跳到了面。
九、荣耀王者:LET、REDUCE、MAP、SCAN(入职第9年)
场景:公式工程化
第九年,公式开始写成"程序"了。
LET解决的问题是——同一个表达式在公式里重复写好几遍,又长又难读:
=LET(
单价,
B5,
数量,
C5,
折扣,
IF(数量 > 100, 0.9, 1),
单价 * 数量 * 折扣
)定义变量,引用变量,最后输出结果。公式像代码一样有结构。
MAP逐个处理,把每个元素过一遍函数:
=MAP(
A5:A9,
LAMBDA(
编码,
IF(
LEFT(编码, 2) = "DD",
"自制",
"外购"
)
)
)SCAN累积计算,保留每一步的中间结果:
=SCAN(0,B2:B500,LAMBDA(累计,当前,累计+当前))算累计库存,不用再手动做_running total_。
REDUCE最猛,反复迭代直到收敛:
=DROP(REDUCE("",A14:A16,LAMBDA(X,Y,VSTACK(X,"CP-"&Y&"-"&TEXT(SEQUENCE(OFFSET(Y,,1)),"00")))),1)把多个单元格文本拼成一个字符串,用"-"连接。并动态生成成品仓库位,这样仓库规划就不用手动编号了。
函数式编程
。公式不再只是"算一个值",而是可以定义变量、循环、累积——这是编程思维。
十、传奇王者:LAMBDA(入职第10年)
场景:万数归一
第十年。
我坐在电脑前,看着过去九年学过的所有函数——SUM、IF、VLOOKUP、FILTER、GROUPBY、LET……
突然想通了一件事:所有函数本质上都在做同一件事——接收输入,处理,返回输出。
LAMBDA,就是把这个本质暴露出来:
=LET(GU,LAMBDA(n,TOCOL(IF(B4:D6<>"",n,A),3)),HSTACK(GU(A4:A6),GU(B3:D3),GU(B4:D6)))定义自己的函数--GU,一个经典的二维转一维,只需要调用3次拼接即完成。
跟用使用SUM一样自然。
回头看这十年——
SUM是加法,AVERAGE是除法的变体,IF是分支,FILTER是筛选,BYROW是循环,LET是变量,REDUCE是迭代……
LAMBDA把它们全部统一了。因为LAMBDA的本质就是——定义任意函数。
你想做加法?LAMBDA能定义。你想做筛选?LAMBDA能定义。你想做循环?LAMBDA递归能定义。
最后说一句
十年前我用SUM算仓库金额,觉得自己很菜。十年后我用LAMBDA定义自己的函数,觉得自己终于入门了。
函数段位不是炫耀的资本,而是解决问题的工具。青铜有青铜的用法,王者有王者的场景。你在哪个段位不重要,重要的是——你的函数能不能解决眼前的问题。
但如果你问我,这十年最大的收获是什么?
不是学会了多少函数,而是学会了用数据思考。
从手动按计算器,到一句公式自动出结果。从"人适应表格",到"表格适应人"。这条路走了十年,回头看,每一步都值得。
下个十年,AI(WPS 灵犀Claw)见,不用学习复杂的函数,你和AI说就可以了。
古老师(古哥计划)|中小制造数字化专家|金山 KVP(金山办公最有价值专家)|金山多维表格应用场景专家|金山 WPS 社区优秀创作者
深耕中小制造业数字化落地,擅长用 WPS 多维表格 + AI 低代码方案,帮工厂快速搭建进销存、生产计划、质量追溯等轻量化系统。不用复杂 IT,低成本落地,已服务数百家制造企业,实战经验丰富。
#多维表格 #工厂管理 #AI应用 #Excel函数 #WPS
Lv.4 核心创作者