“每次我对这个帐用vlookup对,但耗时特别长,我特别墨迹”
与 30万 读者一起学Excel
帐=账,直接用新学员的话作为标题。
客户给的单号是混合在一起的,实际上是两种不同的单号,要分开。一种是纯数字,一种是字母开头的,她原来都是通过复制粘贴进行分离。
刚开始,卢子是直接提取首位字符判断是否为数字,进行分离。
=IF(ISNUMBER(-LEFT(A2)),A2,"")
=IF(ISNUMBER(-LEFT(A2)),"",A2)
后来又看了下,觉得可以再进行简化,直接判断单元格是否为数字就行,不用提取首位。
=IF(ISNUMBER(A2),A2,"")
=IF(ISNUMBER(A2),"",A2)
判断文本,可以借助函数ISTEXT。
IS家族有几个函数都挺常用的,ISNA判断是否为NA错误,ISERROE判断是否为错误。
再跟学员细聊,发现她原来分离后,是要进行对账用的。
公司的记录方式,是将舱号、单号分开2列,同时单号会出现多次。客户的记录方式,将舱号、单号混合在一起,而且只记录总金额,不会出现多笔记录。
她原来是先将客户的舱号、单号分离开,然后用VLOOKUP函数核对。我们都知道,如果有多条记录的情况下,VLOOKUP函数只会查找第一条记录,这样就会出现问题。
针对这种情况,卢子采用了SUMIF函数。先对舱号进行条件求和,再对单号进行条件求和,最后相加。
=SUMIF(A:A,F4,C:C)+SUMIF(B:B,F4,C:C)
再对金额计算差异,不是0的就是有问题。
=G4-H4
还有一种方法,就是将混合的舱号、单号全部用VLOOKUP函数转换成单号,再进行条件求和。
用VLOOKUP查找,查找不到的就是错误值,嵌套IFERROR函数让查找不到的显示本身。
=IFERROR(VLOOKUP(F4,A:B,2,0),F4)
转换完,进行条件求和,就变得非常直观。
=SUMIF(B:B,E4,C:C)
关于对账,多动脑,总能想到好方法。
留一个思考题给你,上面都是根据客户核对公司的金额,现在反过来,如何根据公司核对客户的金额?
提取码:93bi
年底了,我这几天尝试对微信文章内容做一些小调整,出一些练习题,主要考察你一年来学得怎么样,别每天稀里糊涂的,看一遍文章就过了,也不知道学会学不会的。
如果你对微信文章内容有更好的想法,也可以留言告诉我。
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)