ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助 mod函数--余数问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-1-11 14:54 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:MOD
mod(2,3) 这种 除数大于被除数的搞不懂怎么算啊 ,在论坛看到过类似的讨论帖子,但是好像没找到统一的说法 ,希望高人给些指点,谢谢!如果能够提供系统、完整一点的资料更好 ~~

点评

知识树索引内容在2、7、8楼  发表于 2014-3-15 18:47

TA的精华主题

TA的得分主题

发表于 2011-1-11 14:59 | 显示全部楼层
2除以3,整数部分是0——不用管它,MOD返回的是余数部分2。

MOD(5.12,1)——整数部分是5——不用填管它,MOD返回小数部分0.12。
MOD(13,3)——整数是4,余数是1,返回1。

此外,除数和被除数的正、负号不同时,则以除数(第2参数)为准,比如:
=MOD(5,-3)——结果是-1


根据MOD函数帮助文件:

  1. MOD(n, d) = n - d*INT(n/d)
复制代码

=MOD(5,-3)就是=5-(-3)*INT(5/-3)=5-(-3)*(-2)=5-6
结果为-1。

=MOD(2,3)就是=2-3*INT(2/3)=2-3*0
结果为2。


[ 本帖最后由 gouweicao78 于 2011-1-11 15:08 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-1-11 15:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 1楼 guopingdo 的帖子

http://club.excelhome.net/thread-657121-1-1.html
这个链接一定对你有用

TA的精华主题

TA的得分主题

发表于 2011-1-11 15:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
呵呵……原以为2除以3的余数是其商(即0.6666),今天才恍然,是其余数2。

[ 本帖最后由 guoybb 于 2011-1-11 15:29 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-11 15:50 | 显示全部楼层
刚才自己 总结了一下  不知道对不对

1。同正负号的直接算余数, mod(3,2)=1                    绝对值   除数>被除数:  结果为 被除数 本身 mod(2,3)=2                       mod(-2,-3)= -2               

2。不同正负号的:除数×(整商+1)-被除数,mod(3,-2)= -1       绝对值  除数>被除数:   此公式同样适用,不过整商为“0” 。符号由除数确定  mod(2,-3)= -1   ,mod(-2,3)= 1               
                       
谢谢大家~~~

[ 本帖最后由 guopingdo 于 2011-1-11 17:11 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-1-11 17:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
只要能理解就行,不管用什么方法呵呵

TA的精华主题

TA的得分主题

发表于 2011-1-11 17:38 | 显示全部楼层

回复 5楼 guopingdo 的帖子

帮助文件的算法:

MOD(n, d) = n - d*INT(n/d)

注意INT当为负数时,是向绝对值增大的方向取整。比如INT(-1/5)的结果是-1而不是0。

TA的精华主题

TA的得分主题

发表于 2011-1-11 23:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
另一个可能比较容易理解的方式

取模运算实际上可以看成是向什么方向走几步的问题

如同一个时钟的秒针,到了某个点就回到起点继续走


mod(12,60) = 12,等价于从60开始,向正方向走12步, 60秒 + 12秒 = 72秒, 秒针位置停在12秒

mod(-48,60) =12,等价于从60开始,向反方向走48步, 60秒 - 48秒 = 12秒,

同理
mod(-2,3) 视作从3开始,向负数方向走2步,所以是1 (第一步2,第二步1, 看作一个最大为3的时钟,只可能有 0-1-2 这三个刻度位置)

mod(-3,2) 视作从2开始,向负数方向走3步,所以是1 (因为 mod 2的结果只能是1或者0,所以第一步1,第二步0,第三步重新开始1)

mod(3,-2) 视作从-2开始,正方向走3步, 所以是-1 (因为 mod -2的结果只能是-1或者0,所以第一步-1,第二步0,第三步重新开始-1)

[ 本帖最后由 灰袍法师 于 2011-1-12 18:40 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-1-12 08:45 | 显示全部楼层
灰袍法师果然高明,呵呵,这个理解很形象。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-12 14:31 | 显示全部楼层
殊途同归,曲径通幽,都太棒了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-21 23:51 , Processed in 0.047330 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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