ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5446|回复: 13

[讨论] SumIf()_条件求和函数戏谈

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-10 13:13 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  我在ExcelHome论坛上传拙文“会计帐页设计要点——方向公式的设计”,有个网友回复:“只有你才明白”。我一看就明白,此公不是会计!在财务工作中,有一些东西不是外行人能理解的。

  以前我的一个朋友在设计“会计明细科目余额表”时,一天,打话给我说:“坏啦!我的求和公式错了,求出的合计是错的!”我说:“求和公式很简单,怎样会错呢?”再一问,才知道在做“会计明细科目余额表”,我戏称:“原来你的电脑不懂会计,因为余额是有方向的!”,后来,他才知道,会计明细科目余额表的求和是不能用SUM()搞定的。

  做会计的人都知道,会计科目的余额“方向”有三种形态:“借、贷、平”,其中“平”代表余额为“零”,所以对一个会计科目明细进行求和时,必须用SUMIF()函数,如下图:

未命名.JPG
  在往来明细帐中,有多收或少收情况发生,明细余额有时会出现“借”、“贷”同时具有的情况。如上图中“预付帐款”明细余额,假如购进货物的数量多,而预付只是定金,又和销货方没有结帐,就可能出现“贷”方余额,因此,我们单纯地用Sum(G9:G22)来求和不行的。

  总帐余额是各明细余额之和,等于所有“借”方明细余额之和与“贷”方明细余额之和相减的结果,当“借”方大于“贷”方时,总帐余额的“方向”为“借”,反之为“贷”。按照此思路,上图中总帐科目“预付帐款”,用条件设计公式如下:

  借方余额之和:SUMIF(F9:F22,"借",G9:G22)

  贷方余额之和:SUMIF(F9:F22,"贷",G9:G22)

  此两项相减,就得出“预付帐款”完整的求和公式

  =SUMIF(F9:F22,"借",G9:G22)-SUMIF(F9:F22,"贷",G9:G22)

  当然,上图因为毕竟是一张表,不是帐页,没有设定总帐科目的方向,当“借”小于“贷”时,会出现负数,因此,完美的设计还要加上总帐余额的“方向”,上面公式还要加上绝对值函数ABS(),如下:

  =ABS(SUMIF(F9:F22,"借",G9:G22)-SUMIF(F9:F22,"贷",G9:G22))

  总帐科目余额的“方向”公式如下:

  =IF(SUMIF(F9:F22,"借",G9:G22)-SUMIF(F9:F22,"贷",G9:G22)>0,"借",IF(SUMIF(F9:F22,"借",G9:G22)-SUMIF(F9:F22,"贷",G9:G22)<0,"贷","平"))

[ 本帖最后由 黄其宾 于 2011-3-10 13:14 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-3-10 20:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-3-12 10:49 | 显示全部楼层
楼主,功能不错,但还是考虑用VBA一些功能吧,这么多公式,工作簿应该有好几个MB了吧。建议。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-12 15:29 | 显示全部楼层

回复 3楼 qczvba 的帖子

这只是我的“小企业帐务处理系统”中的一个片断,在这里写出来主要是针对初学的朋友。其实现在想学的朋友不少,培训的太专业,和实际工作相隔太远,实际工作中又不知道如何处理,因此在这里晒晒心得。

TA的精华主题

TA的得分主题

发表于 2011-3-15 11:22 | 显示全部楼层
楼主在这里讲的财务基础大过于EXCEL啊!
呵呵!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-15 13:20 | 显示全部楼层

回复 5楼 jeff_cfy 的帖子

财务是一个宏大的东西,Excel的应用也主要用于财务方面的应用,在坛内高手如云,在EXcel方面,一个条件求和函数,只是一个小儿科问题,对于初学的应用者来,是你给他们解决了一个大问题。
    理论只有用于实践,才能发挥其威力!

TA的精华主题

TA的得分主题

发表于 2011-3-15 13:39 | 显示全部楼层
从表面上看可以这样做,但实际工作中应该比这复杂。比如要考虑期初余额,本期发生不是问题,但余额合计和累计就又很复杂了。所以,VBA解决很理想,但一般人不会VBA(哈哈,我才学习)。数据透视表使用SQL也可以达到你的效果,而且比你做的实用。个人见解,有待商榷

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-15 14:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这只是一个影头,这张表是一个目录,它是由多张帐页的期末余额组成的,其数据主要存放在各张帐页中,其与各张帐页之间通过单击表中“序号”来达到链接。因此,这里主要谈的只是一个支节,而不是财务系统的整体。
     虽然我不懂数据透视,但我想它并不是万能的,否则,用数据透视解决会计电算化也太过于简单了。
    欢迎光临我的“小企业帐务处理系统”,请多提宝贵意见,以便于改进与完善,再次感谢金城烟雨先生,我的QQ147572289,希望今后大家多多交流!

TA的精华主题

TA的得分主题

发表于 2011-3-15 14:46 | 显示全部楼层
http://club.excelhome.net/thread-664666-3-4.html
看看这个帖子对我们都会有启发,其中数据透视表就是有些你哪个模块的效果。哈哈,我也是在学习,有时间一定和你商榷。我还没QQ好呢。

TA的精华主题

TA的得分主题

发表于 2011-3-19 19:31 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-28 03:19 , Processed in 0.035390 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表