[心得] Excel如何vlookup查找应收帐款最晚收款日

楼主: moodyblue   2016-04-24 10:16:15
Excel如何vlookup查找应收帐款最晚收款日
网志图文版:
http://www.b88104069.com/archives/4048
会计上的应收帐款明细帐,都会有一个应收款日,有时候我们需要根据明细
表,汇总各个地区客户的最晚收款日。首先会想到用vlookup去串,但是首先
有个问题,vlookup只能依照一个特定的字段资料去查找,如果是有一组(两
个以上)的字段,例如像是(地区,客户)这样的组合,vlookup会比较麻烦。即
使查找条件解决了,接下来还有个问题,vlookup只会查找出相对资料的第一
笔,有时候在原始资料中,相同的查找条件有好几笔,但我们要的不一定是
第一笔。例如在应收帐款明细表里,相同的地区客户,有很多笔帐款,但我
们只想要最晚一笔的应收款日,在这种情况,简单套用vlookup没办法达成预
期效果。以下,想借由实务上遇到的案例,分享如何巧妙运用vlookup:
一、应收帐款明细表,有“地区、客户、帐款(编号)、应收金额、应收款日
”等字段。这是一个很适合Excel处理的报表资料,如果ERP系统跑出来或是
查核帐客户前端部门给的资料,不是这样的形式,建议都先“修理”一下,
方便接续作资料整理汇总。
二、如图所示,针对应收帐款明细表,想整理出一份清单,显示各个地区客
户最晚的收款日。
三、遇到这种情形,第一个想到的是vlookup 向查找函数,这个函数功能是
同一列资料中,可以查找某字段符合特定值的某一列中,传回同一列相对应
其它特定字段的资料。这么讲相当艰涩,但只要有实际用过vlookup的,都会
知道其实很容易理解,而且很好用。不过如同在这个例子所看到的,
vlookup只能以某一栏作为查找条件,所以遇到需要两个以上字段作为组合条
件时,必须先把各个字段拼装起来,中规中矩的公式为“
=CONCATENATE(A2,B2)”,简单易懂的公式为“=A2&B2”。
四、解决了查找条件的问题,套用vlookup输入公式:“=VLOOKUP(C2,明细
!$C$2:$F$9,4,0)”很快会发现带出来资料不是我们想要的,因为vlookup还
有个特性,它只会传回符合条件的第一笔资料,而我们想要的,不仅仅是符
合“地区+客户”的收款,还要是“最晚收款日”。
五、理解了问题的症结点,直接的解决方法随之而来。既然vlookup只会传回
第一笔资料,那也许可以先整理原始资料,让我们想要的资料,都先往上排
,问题迎刃而解。以文章范例而言,要找最晚的收款日,那就先把资料“排
序”,收款日越晚的,排在越上面,不就OK了!到Excel上方功能模块,“常
用”、“排序与筛选”、“自订排序”。
六、在跳出来的功能视窗中,依照我们需要,排序方式选择“应收款日”,
排序对象维持默认的“值”,顺序改成“最新到最旧”。
七、按下排序功能视窗的“确定”之后,看看报表,已经变成是依照应收款
日排序,最晚的在最上面了。
八、再次输入公式:“=VLOOKUP(C2,明细!$D$2:$G$9,4,0)”,当当当,不就
它了吗!
九、最后来个彩蛋。Excel用CONCATENATE、用vlookup、用排序,都是Excel
初阶者思惟(说我自己啦),中阶者会弄阵列,高阶者会开发VBA。以本篇文章
案例而言,高高手一看,不就是个阵列公式:“{=MAX(IF(明细
3!$A$2:$A$9='9'!A2,明细3!$B$2:$B$9='9'!B2)*(明细3!$E$2:$E$9))}”,
一次全套解决不囉嗦,有兴趣读者可以试试,注意到先输入:“=MAX(IF(明
细3!$A$2:$A$9='9'!A2,明细3!$B$2:$B$9='9'!B2)*(明细3!$E$2:$E$9))”然
后再按“Ctrl+Shift+Enter”,这是阵列公式基本用法,以后有机会,想写
些关于阵列的分享文章。
延伸阅读(应收帐款系列):
Excel如何sumif自动加总应收帐款:
http://www.b88104069.com/archives/3735
Excel如何设定组别分类自动更新:
http://www.b88104069.com/archives/3819
Excel如何格式化条件设定组别分类:
http://www.b88104069.com/archives/3888
作者: mia3 (咪亚桑)   2016-04-25 01:55:00
作者: zxcv32188 (88123vcxz)   2016-04-26 23:29:00

Links booklink

Contact Us: admin [ a t ] ucptt.com