赶报表那天盯着表格发呆,一直在琢磨if函数三个条件怎么用,手上已经改了好几遍公式,回车之后不是弹出报错,就是出来的结果完全乱套,和我预想的一点都对不上。手上这份是部门的考核统计表,要按分数分出三档,低于六十标记不合格,六十到八十之间是合格,八十往上才算优秀,之前只用过一层if,多一层之后脑子直接转不过来,敲一个字符就要停下来想半天。
最先犯的毛病,是条件顺序随便写,直接把大于八十的判断放在了后面。输完公式按回车,所有大于八十的单元格全都跳成了合格,当时愣了好一会儿,反复核对数字,明明单元格里的数值是八十八,结果栏就是不肯显示优秀。反复来回删改,来回拖动鼠标选中单元格,试了有四五次,依旧是同一个样子,那时候还猜是不是软件卡住了,关掉表格重新打开,问题还是原样摆在那里。
旁边工位的同事抽空瞟了一眼屏幕,随口提了一句,if嵌套是从上往下依次判定的,前面满足了就不会再读后面的内容。那句话听完,才慢慢反应过来,不能把区间顺序打乱,得从高到低或者从低到高顺着排,不能东一个条件西一个条件随便堆进去。
括号才是更磨人的地方。
每多加一层if,末尾就要多补一个括号,敲的时候只顾着写里面的判断内容,写到最后经常少打一个,或者多敲一个多余的括号,一按回车,弹窗直接跳出来提示公式存在错误。有时候明明条件顺序理顺了,就因为末尾括号数量不对,整条公式直接失效,来回对着长长的一串字符数括号,眼睛都看花了,数到后面自己都分不清哪个括号对应哪一层。有一回好不容易数对,结果又把逗号放错位置,两个参数中间少了分隔符,又是报错。
慢慢摸索着,不再一次性写完一长串,先写最里面那一层的if,测试能正常出结果之后,再在外头包上第二层,再去试,确认没问题再加第三层。这样拆分着来,出错的次数少了不少,但偶尔还是会走神,把文本标记的引号漏掉,不合格、合格这类文字内容,不带引号放进去,同样没法正常运算。
中间还冒出过别的念头,想着能不能不用嵌套,找别的函数代替,翻了翻自带的函数列表,看见lookup,试了两下,又搞不懂它的匹配逻辑,对比下来,还是硬啃if嵌套。只是那段时间心态有点浮躁,越急着把报表交出去,敲公式的时候越容易手抖,一个小错就要重新调整,折腾了快一个小时,才算拿到勉强能用的结果。
也试过把条件写反,把大于号写成小于号,这种错藏得更深,不会直接报错,只是出来的分类全部颠倒,不挨个抽查几行数据根本发现不了。那天做完之后,专门拉了十几行不同分数的数据挨个核对,低分高分都挑出来看,确认大部分单元格返回的标记是对的,才敢停下手里的操作。
这份报表交出去之后,后面再碰到要三个条件判断的表格,依旧不敢一口气写完整条嵌套公式,还是习惯一层一层往里叠加,写完一段就回车看一眼反馈。我也清楚,这只是我自己慢慢试出来的操作节奏,换别的人,说不定有顺手得多的做法,不能拿来当成固定的路子去套所有表格。
关掉表格的时候,屏幕上还留着那串长长短短的公式,一堆括号挤在末尾,看着还是有点发怵。