ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 海鲜舍入法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-2-20 21:34 | 显示全部楼层 |阅读模式
本帖最后由 世界客都 于 2024-2-20 21:50 编辑

海鲜舍入法.jpg


前 言
   此方法是一类将误差分摊的方法,由象山海鲜版主所创,结构非常的简单,但是效果却很好,所以,我把此方法叫做“海鲜舍入法”。可能大家会觉得奇怪,既然是象山海鲜版主所创,为什么好像没听过的样子?此事说来也巧,某天我无意中看到了海鲜版主写了一个公式,样子平平无奇,可是结构好像没见过,于是我就认真分析了一下他的公式的合理性,结果发现效果非常好,不单止总和能对得上,而且舍入后的数值的误差也能控制在一个范围。所以我认真思考了好一段时间,斗胆把此方法的原理以及应用分享出来,希望大家能够喜欢。
   正常情况下一些数值四舍五入后的值的总和应该是普遍大于原来的数值的总和的,例如:1.5,1.4.1.6,总和为4.5,如果是四舍五入为整数,那么总和是2+1+2=5。比4.5要大。这是因为:打个比方:有一些1位小数需要四舍五入,在小数点后第一位平均出现0~9的的情况下,出现0-4的话是舍弃,平均减少(0.1+0.2+0.3+0.4)/4=0.25。如果是出现5-9的话,平均增加(0.5+0.4+0.3+0.2+0.1)/5=0.3,平均比0.25多0.05.。
   这就引申出一些常见的问题,例如:发工资,四舍五入后总和会比原来的总和大或者小,一般情况下大家(包括我)是这样解决的,四舍五入后多出来的十几块钱或者几块钱或者几毛、几分钱我们随便把他们加到 一些人身上去。
但是,加也要考虑加以后的值跟原来的值的差距不能太大。比方说,张三应发工资是146.233830389元,我们保留2位小数是146.23元,那么如果现在需要把十几块钱的金额摊出去,那么就不能把1块钱分到张三身上去,这是因为如果别人的应发工资跟张三一样,张三发到了147.23,别人发的是146.23,那么多多少少会引起一些不。但是,如果把多出来的十几块钱用一些特殊方法分摊出去,同时确保数值与原数值相差在1块钱以内,那么就会减少不满。
   所以,海鲜舍入法包含了2方面的特性:
   第一,舍入后值的总和必须要与原总和相等;
   第二,舍入后的值与原值的差应在某个范围内。
   大家可以先下载附件看看数据,然后我在2楼详细的讲解一下方法的原理。

海鲜舍入法.zip (21.21 KB, 下载次数: 53)

评分

12

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-20 21:35 | 显示全部楼层
正 文
   一、舍入后值的总和必须要与原总和相等
也就是要证明:F33单元格等于D33单元格,O33单元格等于M33单元格,X33单元格等于V33单元格的值。
这个证明其实非常简单,无非就是证明以下一个显而易见的事实:
ROUND(A-B,c)+B=A
其中B的小数位数应小于等于c。
以上事实是显而易见的,故第一部分已证明。
   二、舍入后的值与原值的差应在某个范围内
这里我挑G列的数值来证明,其余列的证明类似的,证明:G列的值的绝对值小于1。
要证G列的值的绝对值小于1等价于证明H列的值的绝对值不大于0.5(想一下,为什么?)
我们来考虑一个极端的例子,我们知道四舍五入与原值最大就差到0.5,不能再多了,于是:假如从G2单元格开始都是正数,那么,如果G2单元格是一个小于0.5的值,D3单元格加上G2单元格的值还不能进位,说明G3单元格也是一个正值,那么,很显然,一旦出现进位情况,那么G列的值就变成负数,H列的累加值又会降下来。所以H列的值的绝对值不会大于0.5.
   接下来是一个十分简单的小练习题,看看大家有没有对海鲜舍入法了解透彻呢?
供巩固-小练习题.zip (11.18 KB, 下载次数: 33)

评分

5

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-23 20:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
小练习题的答案:
  1. =ROUND((SUM(B$2:AA2)-SUM(26*AD$1:AD1))/26,2)
复制代码
根据海鲜舍入法容易得出上述公式。



TA的精华主题

TA的得分主题

发表于 2024-3-8 19:49 | 显示全部楼层
很有意思的帖子,怪不得我的实发工资和自己算的工资总是差这么几分或几毛。占个位学习一下

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-4-15 16:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-4-15 16:41 | 显示全部楼层
世界客都 发表于 2024-2-23 20:21
小练习题的答案:
根据海鲜舍入法容易得出上述公式。

不好意思,刚刚我的那个四舍五入的问题,我写了如下公式放在E4,但是没有结果出来。
=ROUND((SUM(B$4:D4)-SUM(3*E$4:E4))/3,2)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-15 22:43 | 显示全部楼层
天南第一剑修 发表于 2024-4-15 16:41
不好意思,刚刚我的那个四舍五入的问题,我写了如下公式放在E4,但是没有结果出来。
=ROUND((SUM(B$4:D4 ...

你都没理解海鲜舍入法。。。

如图所示:
1212.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-4-16 08:13 | 显示全部楼层
1毛钱的差异从在随机选一人上做调整变成:第一人不作调整,其他人平摊这1毛钱。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-16 08:54 | 显示全部楼层
jivy1212 发表于 2024-4-16 08:13
1毛钱的差异从在随机选一人上做调整变成:第一人不作调整,其他人平摊这1毛钱。

没有足够的鲜花了,改天送上。
当人数够多的时候,第一人改不改都无所谓啦。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-28 02:49 , Processed in 0.042142 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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