excel 迭代中的迭代计算是如何操作的?我想要的结果是在我输入2(A列)的时候B列的3自动变为5

查看: 74447|回复: 405
【原创】迭代计算,你会用吗?
有的时候,我们在输入公式的时候输入错误,例如我们在A1单元格输入公式=A1,系统就会弹出循环引用的警告。&&并且,同时会弹出公式审核工具栏及帮助。这的确给我们输入公式带来的不小的麻烦。通常情况下,我们只需要再输入正确的公式就可以了。可是,你是否曾经仔细研究过,这个循环引用到底有什么用呢??其实循环引用在EXCEL中并不仅仅是作为一种错误形式来出现的,循环引用也称做迭代计算,在EXCEL中,它就像是一柄双刃剑,用的不好,可能导致你的EXCEL公式全部混乱,可是,如果稍加利用,能发挥迭代计算的长处的话,也可以给我们的工作带来极大的方便。下面我通过几个简单的例子来稍微探讨一下迭代计算的用处。38楼已添加此文中所有示例,以供大家参考。
[此贴子已经被作者于 18:59:16编辑过]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
迭代,迭代,好文,好文!
示例一:生成不变的随机数
示例一:生成不变的随机数&题目:我们需要生成一个随机数,而这个随机数不随工作表的重算而改变。即生成一个不再变动的随机数。解决步骤:我们先勾选【菜单】——【工具】——【选项】——【重新计算】选项卡中的迭代计算,将迭代次数设为1次,然后在A1输入公式A1=IF(A1=0,RAND(),A1)&&&(因为EXCEL版本的关系,我所有的示例都将用EXCEL2007来进行操作。用EXCEL2003的同学请进行相应的转化。其中用到randbetween()函数的部分,可能需要在EXCEL2003加载宏。)
[此贴子已经被作者于 14:14:14编辑过]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
我说的是下拉填充&
这种填法每个单元格的值都一样的&
迭代计算公式的语法
我们来看上面这个公式A1=IF(A1=0,RAND(),A1)这是迭代计算中常用的形式,也可以算做是一种语法吧。请大家向学习英语语法一样,将其牢牢记在心里。因为,它真的很有用。&第一部分的条件判断式,如果需要满足多个条件时,要善于利用and,or等逻辑函数来组件多重的判断条件。
[此贴子已经被作者于 14:15:28编辑过]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
实例二:自动填写当前的时间或者日期
再来看一个示例&题目:假设每条数据有3个必填项目,当这三个必填项目全部填写完毕之后,自动在数据的最末尾填写上相应的完成的时间或者日期。&通常,要用VBA来解决,可以,也可以利用迭代计算来处理。&步骤:1、勾选【菜单】——【工具】——【选项】——【重新计算】选项卡中的迭代计算,将迭代次数设为1次&&&&&&&& 2、输入公式=IF(COUNTA(A2:C2)&3,"",IF(AND(D2&&"",D2&&0),D2,NOW())),然后下拉&这样,公式自动生成的就是完成每条数据的时间。而当数据没有填写完整的时候,时间一栏将显示为空白。&具体请见下图演示。&&&
[此贴子已经被作者于 14:16:34编辑过]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
实例三:求历史最高值
尽管是采用同样的原理,但是,我还是要不厌其烦的举不同的例子来巩固上面迭代计算的语法知识。题目:假设每天的9:00~19:00每个钟头记录一次温度。每天的温度都在不断的变化,每天都有当天的最高温。当当天最高温超过历史最高温度的时候,历史最高温度变为当天的最高温度。否则,历史最高温度不变化。&&
[此贴子已经被作者于 14:17:35编辑过]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
示例四:不重复抽样
题目:我们需要从1~100中抽取不重复的25个数据。应该如何解决呢?&&这题抽取随机数可以用randbetween()来解决,可是,如何保证随机抽取的随机数是不重复的呢?&&步骤:1、勾选【菜单】——【工具】——【选项】——【重新计算】选项卡中的迭代计算,将迭代次数设为最大值32767.&&&&&&&& 2、A1输入公式=IF(OR(A1=0,COUNTIF($A$1:A1,A1)&1),RANDBETWEEN(1,100),A1),然后下拉值A25&&大家可以验证,以上生成的随机数都是不重复的。(具体原理我就不再赘述了)
[此贴子已经被作者于 14:18:50编辑过]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
示例五:多行多列求不重复值
其实迭代计算还可以解决一些比较高级的问题。比如说多行多列取不重复值的问题。&&& 这个问题要是用普通的函数来解决,公式将会非常的冗长。如果我们变换思路,进行迭代计算呢。&首先,我们需要知道这个多行多列到底有多少个不重复的值。例如,数据区域为$A$1:$C$10用经典的数组公式=SUM(1/COUNTIF($A$1:$C$10,$A$1:$C$10))来求的不重复值的个数,例如为20个。&其次,我们要将迭代的次数设为最大值32767,最好将工作表重算的方式设置为手动重算。&然后,我们就可以设置我们的迭代公式了,例如在E1输入=IF(OR(E1=0,COUNTIF($E$1:E1,E1)&1),INDEX($A$1:$C$10,RANDBETWEEN(1,10),RANDBETWEEN(1,3)),E1),然后下拉至E20&当然,因为是生成随机数的方式,所以可能并不容易很轻易的全部得到不重复值。特别是当这个数据区域比较大的时候,可能一次得到全部不重复值的概率更小。所以,我们需要多重算几次。重算的方法为按F9.你可以按住F9一直重算,知道你的数据不再变动为止(当数据不再变动的时候,一般就是已经找到满足所有条件的值了,也E1:E20内的值就是所有的不重复值)&上面的示例并没有一次得到全部的结果,重算了3次之后,得出了最后的结果(用条件格式测试没有发现重复值)&&&
[此贴子已经被作者于 9:13:42编辑过]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
示例六:规划求解
规划求解可以帮助我们解决很多很复杂的问题。其中一个很有用的规划即0-1规划。在实际生活中我们也会经常遇到。题目:有一列数据,共100个,要从中找出和为某个特定数的组合。例如=3000。通常此类问题用规划求解来解决,但是当数据比较多的时候,规划求解的过程通常会比较长,有时甚至得不出结果来。&而这时我们可以利用迭代计算来尝试一下。A列的数据是随机生成的,其中迭代计算找到最终的结果仅仅只用了2秒钟不到。而同样的问题,用规划求解得出结果用时超过2分钟(可能是数据太多,当数据太多的时候,规划求解会生成大量的中间值,这也影响了求解的速度当然,仅仅在这个问题上,迭代计算用法优于规划求解,而规划求解的很多问题用迭代计算无法解决或者解决的方法超级复杂。迭代计算在EXCEL中是一道很独特的风景线。理论上来说,迭代计算甚至能够解决像“数独”这样复杂的问题。当然,这得需要你的机器足够好,耐心足够强,最重要的是,需要你的人品超级好,因为32767次的迭代次数看似很多,但是在解决大型问题的时候仍然是聊胜于无。用我上面的迭代法则来解决数独的问题,因为每次是用randbetween(1,9)生成随机数,所以,每次生成什么样的数据只能听天由命了。&上面一些迭代计算的浅显研究,希望能够抛砖引玉。同时希望更多的人能与我分享探讨这方面的知识。
[此贴子已经被作者于 9:07:38编辑过]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
老兄,辛苦了!
多谢分享辛苦LZ了
Powered by在excel中自动记录数据的录入日期的步骤 _ 路由器设置|192.168.1.1|无线路由器设置|192.168.0.1 - 路饭网
您的位置: >
> 阅读资讯:在excel中自动记录数据的录入日期的步骤
在excel中自动记录数据的录入日期的步骤
在excel中自动记录数据的录入日期的步骤
相信很多用excel记帐的朋友,或是录入数据要在数据前面加上录入的日期的,一定会为每录入一个数据就要手动输入一个期而苦恼。下面教大家一个方法,只要输入数据在相应的地方就自动记录这个数据的录入时间。
打开excel,我就弄了一个超市记帐的简单表格,一般我常规的做法是,手动在A列输入日期,然后在B列输入金额。现在我们在A2单元格输入公式=IF(B2=&&,&&,IF(A2=&&,TEXT(NOW(),&yyyy-m-d&),A2))。
这个公式的意思是如果B2单元格为空则A2单元格也为空,如果B2单元格录入的数据马上记录录入的日期,并在A2单元格显示。
现在就完了吗,关键的来了,这里不弄的话是不行的,要不然要出错。
现在我们来启用迭代计算。
点击工具,选项。这一步因为可能版本的关系,位置可能不一样,总之就是找到选项然后点进去。
点重新计算《有的EXCEL版本叫计算》,把迭代计算勾上,点确定。
这就差不多完成了,我们在B2输入数据,A2相应就显示输入的日期。
最后我们把A2的工式一直下拉,拉到你想要的地方。这样只要在B列任一单元格输入数据,在A列就会显示日期了。
注意:你如果是修改B2的数据,那么A2列的相对应的日期是不会变的。
只有当把B2你要改的数据删除后,看B1的日期也没有了后,在B2输入数据,那么A2的日期会变成刚录入的日期。
本文地址:
相关文章列表

我要回帖

更多关于 excel 迭代 的文章

 

随机推荐