提取一、二、三级科目名称,做财务的一定要收好!原创
金蝶云社区-陈世杰身份
陈世杰
22人赞赏了该文章 7,513次浏览 未经作者许可,禁止转载编辑于2020年04月22日 16:03:45

会计科目是财会人员每天都在做的东西,关于会计科目表的也是最常见的,最近有小伙伴说,他有一张会计科目表需要转化一下。



01


案例





如下图所示,下面是会计科目表的一个截取的部分视图。要求是将左边的科目表转化成右面的对应的科目表。



从上表中可以看出,左边的科目表中一级科目,二级科目,三级科目都是有的,并且科目代码的长度也有有规则的,那么转化的时候二级科目与三级科目如何与一级科目相对应,这是解决本题的一个难点所在。


下面老师给大家介绍两种方法,一种是分步骤每个科目各提取一次;另外一种方法是数组公式,一次性到位。但是对于一般水平与初级水平的Excel用户来说,第一种方法更加地适用。




 02  01


分步函数法





下面给大家介绍第一种方法的基本的添加辅助列与公式函数的解决步骤。


Step-01:设置如下图所示的一级科目,二级科目以及三级科目的的表头。



Step-02:观察上面的科目代码,一级科目的代码长度为4,二级科目的代码长度为6,三级科目的代码长度为8.



分析:因为每个二级科目与三级科目都对应着一个一级科目,难点是要判断左侧的每个科目所对应的是一级科目是什么,所以需要截取代码的前4位,判断所属是那个一级科目,然后通过结果行与数据源行的上下比较去判断。


在E2单元格中输入公式:

=IF(LEFT(A2,4)=LEFT(A1,4),E1,B2)

按Enter键完成后向下填充即可。


注意:这里的LEFT函数是从左截取指定长度的字符串函数。



Step-03:对于二级科目来说,需要判断两个方面,一个是代码长度是不6位,另一个是需要判断本行所对应的是是一级科目还是二级科目,如果只有一级科目,不存在二级科目,那么要返回空白,如果该一级科目存在二级科目,那么需要返回一级科目对应的二级科目。



在F2单元格中输入公式:

=IF(LEFT(A2,6)=LEFT(A1,6),F1,IF(LEN(A2)=4,"",B2))

按Enter键完成后向下填充即可。


注意:这里的LEN函数是计算指定的字符串的长度的函数。



Step-04:一级科目与二级科目都判断出来了,对于三级科目来说,就是最简单不过的了,因为只有三个级别,所以,只要判断该行是不是三级科目,即判断代码长度是不是8位即可。



在G2单元格中输入公式:

=IF(LEN(A2)=8,$B2,"")

按Enter键完成后向下填充即可。




 02  01


数组公式法





下面再给大家介绍另外一种快速的方法,可以一次性地完成上次的拆分判断。先设置如下图所示的一级科目,二级科目以及三级科目的的表头。



选中E2:G2单元格,在公式编辑栏中输入公式:

{=IFNA(VLOOKUP(LEFT(A2&"    ",{4,6,8}),$A:$B,2,0),"")}

按组合键<Ctrl+Shift+Enter>完成后向下填充。


作者:我是世杰,财务excel深度玩家,坚持每天分享财务excel干货,微信公众号:24财务excel

 


赞 22