练习题054及答案:如何筛选出所有末级科目?

一、题目要求

上图为出财务软件中导出的科目余额表,请使用筛选功能,筛选出A4:B51中所有的末级科目。

可在第一行第二行设置筛选条件,但不能插入辅助列。

D列数据只是为了方便大家检验筛选结果,不能根据D列来筛选。

二、解题思路

我们在使用Excel时,不管是用基本功能,还是编制公式,都要先观察分析数据,找出数据的规律,针对规律再提出解决方案。

对本案例来说,科目代码都是按科目顺序排列,同一科目先是总账科目,然后是其二级科目,如果还有更明细级的话,接着是三级科目、四级科目。该级科目完了以后,才会是上一层级的下一个科目。

比如第11行是“1002银行存款”的二级科目“1002.31重庆农村商业银行”,该二级科目是末级科目,因为其后没有1002.31.XX了,而是上一层级(1级)的其他科目“1015其他货币资金”。从这个我们可以看出,它有这样一个特点:

如果后面没有更明细级的科目,那么它就是末级科目,什么才是没有更明细级?就是后面的行中不会有该科目代码+“.XX”的科目,在E5单元格用公式来表示就是:

=VLOOKUP(A5&".*",A6:$A$51,1,0)

星号*是通配符,代表任意多个字符。

如果其计算结果是#N/A,那么它就是最末级,否则,就不是最末级。

根据这个原理,我们可以利用它来编制高级筛选的条件,在B2单元格输入公式:

=ISNA(VLOOKUP(A5&".*",A6:$A$51,1,0))

然后按下面的条件设置高级筛选:

筛选的结果为黄色的行,都是末级科目。

除了上面的判断条件,我们还可根据科目代码的长度来判断,凡是科目代码的长度大于下一行科目代码的,都是末级科目,否则,就不是末级科目。在B2单元格用公式设置筛选条件:

=LEN(A5)>=LEN(A6)

然后用B1:B2为筛选条件,使用高级筛选来筛选。

关于高级筛选的知识点介绍,可参见本公众号下面二篇文章:

练习题047及答案:如何筛选指定的第N条记录?

练习题049及答案:筛选出借贷方均为银行存款的凭证(操作题)

另:普通筛选的使用技巧

练习题050:筛选出小数位是三位的数字(操作题)

练习题044:如何粘贴数据到筛选出的记录行

如何不取消筛选,批量删除隐藏的行(未筛选行)?

更多筛选的知识点和精彩应用,请参见《“偷懒”的技术:打造财务Excel达人》第三章。

(0)

相关推荐