3.1 勇敢踏出第一步
卢子虽然学了几个函数,但工作依旧没有太大的变化。每次制作“出货检查不良报告”的时候,总是无意识地对“品名”列多看几眼。来日企两年了,到现在卢子都没学会日语输入,想想也挺可笑的。报告每次做完99%,就剩品名让领导输入,时间久了领导也就习以为常。不过卢子却在想解决之策,怎么将VLOOKUP函数运用到这里,如图3-1所示。
图3-1 空着的日语品名
时间一天天地过去了,但事情依然没进展。现在难点就是找到一份产品清单,里面列举所有产品返回对应的品名。卢子向领导打听,部门内是否有我们公司所有产品的清单?领导的答复让卢子的心情一下子陷入低谷,曾经试图找这一份清单,翻遍了各台电脑依旧没有发现,后来得知只有日本总公司才有。没有清单,会用VLOOKUP函数也没用,此事就告一段落。
忽然有一天,卢子收到日本的Excel文档成绩书,里面有十多款产品。卢子看到这些成绩书,突然脑袋里闪出这样的念头:自己制作产品清单。当然这个清单只是针对隆成公司这边而已,全部供应商的产品清单想都不用想,几万款产品。
有想法就得尝试,卢子将隆成公司的所有产品番号一一罗列出来,将成绩书上有的品名复制、粘贴到产品清单里,这样就完成了一小半。还好卢子想到了自己的老乡会写日语,就麻烦她将剩余的品名输入进去。写日语对我而言很难,但对于她而言就是不值得一提的小事。经过半天的时间,如图3-2所示,终于完成了产品清单,太难能可贵了。
图3-2 产品清单
不会日语的人真伤不起!有了这份清单,设置品名查找公式就变得轻而易举。根据以前的表格,依样画葫芦,如图3-3所示。
图3-3 设置查询公式
其实这里直接用VLOOKUP函数也可以,之所以嵌套IF函数是为了在单元格没输入产品番号的时候不显示错误值#N/A,如图3-4所示。
图3-4 没嵌套IF函数的效果
当然错误值#N/A在这里本来是没多大影响的,只是看起来不太美观而已。
后来有一天学到了一个新函数IFERROR,有人也许会问,这个是干什么用的,跟前面又有何关系?
函数语法:
=IFERROR(表达式,如果第一参数的表达式返回错误值则返回第二个参数的值)
就是让错误值显示成你想显示的任意值,不是显示错误值本身,如图3-5所示。
图3-5 IFERROR函数的用法
最终,卢子将公式改成:
=IFERROR(VLOOKUP(B10,产品清单!B:C,2,0), "")
虽然在这里进行容错处理意义不大,但起码能将所学在第一时间用上。另一种解释就是显示错误值不好看,显示成空白好看点。
在不良报告设置公式,虽然对卢子而言没什么,但对领导而言是一种解脱,让领导省去无数次输入品名的麻烦。后来这个模板在公司内部悄悄地流行起来,卢子也因此受到领导小小的表扬。
知 识 扩 展
Excel 2013版本以上提供了一个专门针对错误值#N/A的函数IFNA,语法和IFERROR函数一样,也就是说可以将公式改成:
=IFNA(VLOOKUP(B10,产品清单!B:C,2,0), "")
说到错误值#N/A,顺便介绍一下Excel中几种常见的错误值,有些你可能见过,有些可能你还没有见过,并结合实例进行简单的说明。
NO.1:“#####”错误
当单元格由于不够宽显示,比如“日期”列宽度不够,只要调到相应的宽度即可,如图3-6所示。
图3-6 “#####”错误
NO.2:“#DIV/0! ”错误
当一个数除以零 (0) 的时候或者不包含任何值的单元格时,Excel将显示此错误,如图3-7所示。
图3-7 “#DIV/0! ”错误
用IF函数进行一个判断即可。
=IF(B2=0, "", C2/B2)
NO.3:“#NAME? ”错误
当Excel无法识别公式中的文本时将显示此错误,由于在公式中,字符串没有添加英文双引号或函数名称拼写错误,如图3-8所示。
图3-8 “#NAME? ”错误
NO.4:“ #NULL! ”错误
当指定两个不相交区域的交集时(交集运算符是分隔公式中引用的空格字符)而导致的错误值,它其实是一种值的返回结果,例如,区域A1:B2和C6:D7不相交,因此,输入公式=SUM(A1:B2 C6:D7)将返回 #NULL!错误,如图3-9所示。
图3-9 “ #NULL! ”错误
NO.5:“#NUM! ”错误
当公式或函数包含无效数值时,如求负数的平方根,导致出错,如图3-10所示。
图3-10 “#NUM! ”错误
NO.6:“ #REF! ”错误
引用的区域被删除后,如良品数的区域被删除,导致出错,如图3-11所示。
图3-11 “ #REF! ”错误
NO.7:“ #VALUE! ”错误
单元格内含有文本,运算导致出错,如图3-12所示。
图3-12 “ #VALUE! ”错误