今天一位朋友,问到这样的一个问题:Excel的一列中包含数字编号分别为4,6,8,她希望根据这些编号,在另外一列中进行赋值,如果对应单元格是4,就指定为1,如果为6就指定为2,如果为8,那么就指定为3;这个公式该如何写呢?
1.我想如果经常用Excel的同学已经在心里想到用什么函数了,一般来说出现这种需要判断并进行赋值的情况,我们的第一反应应该就是IF()函数,如下图,大家能看到在A列中包含不同的数字,在B1中使用了if函数:=IF(A1=4,1,IF(A1=6,2,IF(A1=8,3,'')));
在这里用到的IF函数进行三层嵌套,并不复杂,不过希望大家注意的一点就是在A列中如果存在不等于4,6,8三个数的情况下,我们该怎么办呢?例如上图中的A4单元格,当然在上面的公式中已经考虑到了这种情况,也就是除了4,6,8外,其它的情况都给赋空值(公式最后一对双引号);
2.讲到这里我们才刚刚进入今天要讲的内容,如果上面的if嵌套大家已经会了,那么我接下来给大家来点高级的,同样的问题,我们用另外一个函数来实现赋值,Lookup()函数,大家可能用过vlookup,却很少用到或听过lookup(),actually这函数相当牛逼了,如果要实现上面的赋值,只要这样就可以了:=LOOKUP(A1,{4,6,8},{1,2,3});觉得怎么样?是不是要比if清晰许多,尤其是需要进行判断的条件有很多层,lookup是不二法门;
当然,用这个函数有一定限制,也就是中间的4,6,8必须是按照升序排列,你不能写成=LOOKUP(A1,{6,4,8},{2,1,3});这是不对的,这里用到了另外一个小技巧,两个大括号,人为的做了两个数组,大家不必纠结什么是数组,只要会套着用就行了(我们只要会吃鸡蛋就行,不用管鸡是怎么下的蛋);
3.接下来问题来了,我的这位朋友的表中A列数据并不是大家看到现在这样子,而是以文本形式存在的数值,其重要的标志就是单元格左上角会有一个绿色的小标记,比如我们要在单元格某列存放身份证号码,肯定要先设定其为文本才行,那这样设置之后单元格左上角就会有绿色标记了,大家以后一定要敏感起来,单元格中的数据以数值型存在和以文本形式存在,完全是两码事儿,就拿现在这里案例,如果是以文本存在,我们在用上面的公式进行判断,如下图单元格就会报错;
5.那接下来如果是IF怎么办呢?我们最开始给大家写的if判断是基于数值型的单元格,如下图,大家看我们在C1中写了上面的的if判断,结果都为空,也就是函数认定,A列中的文本型4,6,8,与公式中的4,6,8不是一回事,结果都判定为空了;
如果是这种情况,我们就得像上面一样,在公式的对应单元格地址前面都加上两个减号了 ,以便将文本型单元格内容转换为数值型;
6.或者在公式中的4,6,8两边都加上双引号,也就是将数值型的数字通过双引号转化为文本型;
注:也就是说,我们在写公式的时候,要保证数据类型的统一,才能实现划等号,不然你的结果往往就不是你想要的,希望大家能动手试一试,有问题可以再公众里联系我;
2016.06.22
祝大家工作顺利愉快~
如您有疑问或建议请联系我~
欢迎大家转发~
希望我的一点分享可以帮助到更多的人;
任钊
Office/Project企业办公培训讲师~
微信/QQ:94573068
微软最有价值专家MVP
美国项目管理协会PMP
联系客服