假设我们有以下会计科目表:
1、判断该科目是否是末级科目:
=IF(A2-LEFT(A3,LEN(A2))=0,0,1)
其中0代表非末级,1代表末级,这个公式有个bug,最末的一列要手工输入1。
2、需要列出科目级次:
=IF(LEN(A2)=4,1,IF(LEN(A2)=6,2,IF(LEN(A2)=8,3,IF(LEN(A2)=10,4,IF(LEN(A2)=12,5,0)))))
这个公式首先需要预判全部的科目总共会有几级,根据级次来判断要写多少个if嵌套。
3、假设由于集团为了报表取数方便,要求每个级次都占满6级,比如有的科目只有两级,1001库存现金,100101库存现金,那么库存现金科目要变成:
假设科目编码规则是4-2-3-3-3-3
1级科目 1001 库存现金
2级科目 100101 库存现金
3级科目 100101001 库存现金
4级科目 100101001001 库存现金
5级科目 100101001001001 库存现金
6级科目 100101001001001001 库存现金
第一步:先判断需要补多少位:
=IF(AND(C2=1,D2<6),6-D2,0)
第二步:分别将每一位的科目编码取出来,像这样:
一级编码的取数公式:
=LEFT(A2,4)
二级编码的取数公式:
=MID(A2,5,2)
三级编码的取数公式:
=MID(A2,7,2)
依次类推。
第三步:筛选需要补位的那一列
由于最长为六位,所以可供筛选的数字一般有0、1、2、3、4、5,0表示不用补位,比如筛选2,然后复制筛选结果到下面空白处,一共需要复制两次,筛选3,就一共需要复制三次,然后修改科目级次那一列,分别改成4、5和6。
第四步:填充每级空白的科目编码
当然仍然要先筛选再填充,比如同时筛选级次为2的科目,以及在二级科目下科目编码为空的一列,然后就可以通过拖动批量复制该级次的编码。
第五步:组合每个级次的科目编码
=A2&B2&C2&D2&E2&F2
第六步:通过组合后的完整的科目编码排序,各个科目就乖乖地组合到一起了。
搞定。
联系客服