ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 蜻蜓拿瓢看水,小述MOD函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-12-4 15:03 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:MOD
接胡版的【蜻蜓点水,试探MOD函数的特性】
http://club.excelhome.net/viewth ... p;extra=&page=1
如果你看不懂,那就来看看本帖,说不定你能搞懂

    对于MOD函数参数全为正整数的我们不作深入讨论,只简单描述
一、第二参数为正数的情况
如=MOD(-2,3),函数是怎么得到结果的呢,首先让我们看看我们家的时钟吧
(1)以MOD(2,3)为例,形象如时钟1,函数会画个周期圆,3等分(以第二参数为标准)       
  注意:划分的时候是以顺时针绝对值增大的方向划分的,划好以后等人来转圈圈       
  然后由第一参数来绕圈跑,但是绕圈的方向是由自己与圆的划分方法(第二参数)决定的       
  因为圆的划法是顺时针且绝对值增大划分的,这个时候要看第一参数与第二参数的符号是否相同       
  很显然第一参数2也是正数,第二参数也是正数,所以第一参数就做了下面的动作       
  从圆的0点出发也是顺时针走了2步,很显然落在了圆的2点位置上,所以MOD(2,3)的值就是2       
(2)以MOD(-2,3)为例,时钟怎么划分呢?跟上面的原理一样,以顺时针绝对值增大的方向划分的,       
  划好以后等第一参数来转圈       
  第一参数一看,自己与第二参数符号相反,所以第一参数-2背道而驰(逆时针)从原点走了两步       
  正好落在了时钟的1上面,所以MOD(-2,3)的值就是1       

一、第二参数为负数的情况
  我们依然以第二参数绝对值是3来说明(其他数字原理完全一样)
(1)以MOD(2,-3)为例,形象如时钟2,函数会画个周期圆,3等分(以第二参数为标准)                                                               
  注意:划分的时候是以顺时针绝对值增大的方向划分的,划好以后第一参数来转圈圈                                                               
  因为圆的划法是顺时针且绝对值增大划分的,这个时候要看第一参数与第二参数的符号是否相同                                                               
  很显然第一参数2是正数第二参数是负数,所以第一参数背道而驰,从圆的0点出发逆时针走了2步                                                               
  从圆的0点出发逆时针走了2步,很显然落在了圆的-1点位置上,所以MOD(2,-3)的值就是-1                                                               
(2)以MOD(-2,-3)为例,时钟怎么划分呢?跟上面的原理一样,以顺时针绝对值增大的方向划分的,                                                               
  划好以后等第一参数来转圈                                                               
  第一参数一看,自己与第二参数符号相同,所以第一参数-2顺时针从原点走了两步                                                               
  正好落在了时钟的-2上面,所以MOD(-2,-3)的值就是-2                                                               

总结1:周期(时钟的划分)是以第二参数的绝对值来划分的,至于是顺时针还是逆时针这个由你自己想象                                                                       
但是第二参数的符号跟第一参数一样时,就按照时钟划分的方向跑,否则反向跑                                                                       
最终求得的结果的符号一定与第二参数相同                                                                       

探讨1:如果这些参数有小数怎么办呢?                                                                       
excel做的很简单,对他们进行一样的运算,第一参数走多少步算多少(包括小数)                                                                       
探讨2:在VB,跟VBA中就不一样了,那要四舍五入的,而且最终的值必定是个整数,不会是小数的                                                                       
而且最终的结果值的符号一定与MOD前面的数值相同,与后面一个无关                                                                       
例如:K MOD L,在VB,VBA中,K如果是小数是进行向大的方向四舍五入的                                                                       
而L不管是负数还是正数,都按照正数来四舍五入

[ 本帖最后由 Violet_Universe 于 2010-12-4 15:06 编辑 ]
11.jpg
22.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-12-6 12:41 | 显示全部楼层
不错,MOD函数只是会用,是负数时原理不太清楚,谢谢分享,收藏。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-6 14:08 | 显示全部楼层
原帖由 山桑弓 于 2010-12-6 12:41 发表
不错,MOD函数只是会用,是负数时原理不太清楚,谢谢分享,收藏。

分享分享而已,语言表述不是太好呵呵

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-11 16:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 5楼 gouweicao78 的帖子

一个数书面的一个是形象的,实质一样,只不过表述不太一样,产生的影响不太一样而已,呵呵

TA的精华主题

TA的得分主题

发表于 2011-1-11 15:09 | 显示全部楼层
只需要按照帮助文件的算法便可知:
函数 MOD 可以借用函数 INT 来表示:
MOD(n, d) = n - d*INT(n/d)

TA的精华主题

TA的得分主题

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

回复 6楼 Violet_Universe 的帖子

我也觉得用图表反倒不易理解。哈哈。

TA的精华主题

TA的得分主题

发表于 2011-1-12 08:52 | 显示全部楼层
从算法上来说,帮助文件的比较简单。从理解上来说,这个圆形模式确实不错,MOD本身就有循环的应用。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-13 10:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 8楼 gouweicao78 的帖子

感谢草版点评

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-19 17:47 | 显示全部楼层

TA的精华主题

TA的得分主题

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

本版积分规则

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

GMT+8, 2024-12-22 00:24 , Processed in 0.040374 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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