逐级汇总(数组、字典):财务同学看过来,科目余额表逐级汇总

文摘   教育   2024-10-07 21:43   江苏  

点【关于本公众号】了解一下,欢迎关注谢谢!

快速浏览

实用案例

|日期控件||简单的收发存||收费管理系(Access改进版)|

|电子发票管理助手||电子发票登记系统(Access版)|

|文件合并||表格拆分||审计凭证抽查底稿|

|中医诊所收费系统(Excel版)||中医诊所收费系统(Access版)||银行对账单自动勾对|

|印章使用登记系统|

收费使用项目

|财务管理系统||工资薪金和年终奖个税筹划||新税法下工资表模版|

内容提要

  • 科目余额表逐级汇总
  • 数组、字典应用
大家好,我是冷水泡茶,很久以前,在论坛上看到一个求助:逐级分类汇总
具体需求:

求助逐级分类汇总金额,根据A列关键字段

例:

条件1:14030101-114030104汇总到140301等于2430937.43

条件2:14030203-14030206汇总到140302等于285740.36

条件3:把前面的2个条件金额进行合计:140301编号+140302编号=编号140301金额:2716677.79

数据表格就是一张逐级明细的科目汇总表:
当时觉得也没啥意思,这应该是从ERP系统导出来的科目余额表,汇总数据不是都有吗?还要汇总干什么呢?加之也没有想到什么好办法,就放在一边没管它。
今天翻电脑文件的时候,看到了它,又考虑了一番。既然有需求,那肯定有他的用意,比如改个末级科目金额什么的,那么汇总金额就要变了,一个一个地去设置汇总公式,可能也比较麻烦。于是,决定研究研究。
需求分析:

1、虽然说是逐级分类汇总,但实际上数据都来自“末级科目”。在很多情况下,这种汇总数据是没有什么意义的。我在处理相关科目余额的时候,如果是要根据这个余额去编制财务报表,我一般是只导出末级科目,然后根据末级科目对应到一级科目,再根据一级科目汇总。

2、正常的思维可能是,我们从最末级科目开始,一级一级往上汇总,但思来想去,不好下手;最后,我想到一个办法,就是根据任意一个科目代码,我们把开头是这个科目代码的所有末级科目汇总起来,就是该科目的汇总金额。

基本思路:

1、把科目余额表装入数组arr。

2、循环arr,把科目代码作为key加入字典dic,Item为“TRUE”,表示“末级科目”(我们先把它全部标志为末级科目,下一步再处理非末级科目)

3、我们循环dic的key,再循环dic的key,比较两层循环的key,如果在内层循环中找到一个key,它包含外层循环的key,那就说明,外层循环的key它不是末级科目,它有下级,那么我们就把外层循环key对应的Item改为FALSE。

4、我们循环arr,判断每一个科目代码,如果它在dic中的值是FALSE,那么,说明它是一个汇总科目,我们就再循环arr,把以这个科目代码开头的所有末级科目对应的金额加起来,就是这个汇总科目的金额,把这个汇总金额写入arr的第3列。

5、再把arr回写到工作表原来位置。

示例代码详见当天另一条推文。

后记

1、这样的逐级汇总,要求所有科目代码不能重复,否则结果可能就不正确了。

2、本来想设置一个工作表的Change事件,当科目代码、金额发生变化的时候,自动更新汇总科目金额,但好象是行不通,我们把结果写入工作表时,也会触发工作表的Change事件,这样可能会陷入死循环

好,今天就到这里,我们下期再会!


~~~~~~End~~~~~~

安利小店
安利的牙膏非常不错,用了以后就不想再用其他的了;洗洁精洗衣液也是日常必备,用过都说好!

合谷医疗
合谷医疗专攻各种疑难杂症,尤其擅长抑郁症焦虑失眠儿童神经发育异常多动症自闭孤独症腰颈椎疾病治疗,可谓神乎其技!体验过的直呼早点来就好了

喜欢就点个、点在看留言评论、分享一下呗!感谢支持!

案例文件分享说明

  • 案例文件可免费分享,但需符合以下要求:

  • 关注点赞点在看点...留言,方便的话分享一下就完美啦!如果不便走上面的“流程”,请打赏,万分感谢!

  • 请添加上方我的合谷医疗企业微信,案例文件通过微信发送。如有定制需求,亦可通过微信联系。

  • Excel问题,请在文章下面留言讨论!或者加入我的付费交流群提问

VBA编程实战
Excel应用案例、Excel VBA、公式函数使用技巧分享,思路解读...... 这里有鲜活案例、实用的技巧......
 最新文章