凭证自动生成,太难了?
与 30万 读者一起学Excel
VIP学员的问题,要根据明细,自动生成记账凭证。
明细,手工输入。
记账凭证,调整凭证号,剩下的内容全自动生成。
日期、凭证号并不是唯一值,如果直接查找,只能查找到其中一条记录,难点就在于将这些转变成唯一值。
以前卢子发了很多对账文章,借助辅助列用COUNTIF或COUNTIFS就可以将金额变成唯一值,这里用法也是一样。日期连接以后就变成5位数字,这个不影响后期查找,如果要显示日期嵌套TEXT处理。
=B2&"|"&C2&"|"&COUNTIFS(B$2:B2,B2,C$2:C2,C2)
现在就转变成根据A列查找内容,就是最普通的VLOOKUP查找了。
摘要,在明细表的第4列,所以第3参数写4,有的是没有对应值,嵌套IFERROR让错误值显示空白。
=IFERROR(VLOOKUP($D$2&"|"&$G$2&"|"&ROW(A1),明细!$A:$H,4,0),"")
后面,依次引用5、6、7、8列的内容。因为摘要合并单元格,所以后面四列再设置一条公式。
=IFERROR(VLOOKUP($D$2&"|"&$G$2&"|"&ROW(A1),明细!$A:$H,COLUMN(E1),0),"")
COLUMN就是向右拖动生成数字,A对应1,B对应2,依次类推。
正常用公式引用,空白单元格会显示0,可以在Excel选项,高级,取消勾选在具有零值的单元格中显示零。设置完毕以后,空单元格引用过来以后依然显示空。
其实,这个问题不用辅助列也行,前提是不能有合并单元格,因为会用到数组公式,按Ctrl+Shift+Enter三键结束。早期我很喜欢这个筛选公式,现在几乎不用了,用辅助列更容易理解。
=IFERROR(INDEX(明细!D:D,SMALL(IF((明细!$B$2:$B$11=$C$2)*(明细!$C$2:$C$11=$F$2),ROW($2:$11)),ROW(A1))),"")
会计有不少公式为固定的,比如大写金额,这个就不做说明,下载模板自然看到。
提取码:hp52
一次报名成为VIP会员,所有课程永久免费学,采用录制视频+微信答疑的形式学习,仅需888元,待你加入。
推荐:VLOOKUP函数跟这个巧妙的辅助列,简直就是绝配,狂赞!
上篇:这个超困难的求和问题,我想到了超简单的解决方法了。。。
对于多条件查找,你一般用什么方法?
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)