需求背景:日常工作中我们将科目余额表导出,通常包含了第一级到最后一级,要分别筛选总账科目、二级科目等可以使用前文中的技巧,那如果要筛选或标注出最末级科目,该怎么办呢?
解决方案
可以使用辅助列法。辅助列可以化繁为简。先使用公式判断是否为最末级,然后筛选出该辅助列为“最末级“的记录行,公式如下: =IF(LEN(A2)>=LEN(A3),”最末级”,“”)
知识点解释 在《“偷懒的技术:打造财务Excel达人》中说过“要设计一套功能强大的财务工作表,更需要的是表格设计过程中的逻辑思维和函数的拓展应用能力”,在编写公式前,先不要忙着琢磨用什么函数,而应该分析数据的规律,总结出规律后,再编写公式。粗一看,要判断科目是否为最末级,感觉无从下手,但是我们分析一下科目余额表就可发现,同一个总账科目下越是明细级的科目,其代码越长(废话,这个财务人都知道)。也就是说,如果用本行的科目代码字符数与下一行的相比,如果字符数与下一行相等(同级)或比它多(更明细级),它就是最末级的(前提条件是科目余额表要按科目先后顺序排列)。 说明:本案例如果使用高级筛选,在F2单元格输入筛选条件公式 =LEN(A2)>=LEN(A3),再以其为条件筛选,可筛选出大部分符合条件的记录。由于条件公式中的A3按要求应该为$A$3,但是如果写成这样,就与需求不符了,故写成A3,这样一来就不符合高级筛选“条件公式中除记录的第一行外的所有其他引用要求是绝对引用”这一条件,因而最后一行未筛选出,存在小小的瑕疵,因而不适合使用高级筛选。 |