excel迭代计算实例
我这个迭代公式哪里有问题,请大神帮我解答一下。或者出现这个错误是因为Excel计算不了这个结果吗?...
我这个迭代公式哪里有问题,请大神帮我解答一下。或者出现这个错误是因为Excel计算不了这个结果吗?
展开
3个回答
2018-09-05 · 知道合伙人软件行家
关注
展开全部
要启用Excel的迭代计算,必须对迭代计算有个明确的预见性,即自己对迭代计算如何迭代,迭代次数是多少次,如果是多次,应该在什么情况才可以,都有个明确的预见才能使用,否则要不是出错,要不就是产生意思不到的结果。典型的例子是产生随机数后固定下来,这时用迭代计算比较合适,控制迭代次数的方法一般为:当不满足某个条件,产生随机数,满足条件后,取单元格本身得到固定的数值;另一个典型的例子是记录输入数据的时间,当没有记录数据时,时间记录为空,输入数据时,取得当前时间,之后取单元格本身,即原记录数据时间。
而你这个问题中,姑且不去考虑你的公式要表达什么,是否能计算到正确数据(因为你也没说明,别人是无法知道你要计算什么的),单就迭代计算来看,如公式中的E3-F3,假设公式能得到结果,那么公式输入完成后,就会按在选项中设定的迭代次数(默认为100次)计算100次E3-F3。之后,一旦工作表中有任何操作,就又运算100次。这是你希望的结果吗?且工作表中每有计算或输入时,这个公式都动作的。
所以建议自己先理清自己要干什么,初学者最好先不要去碰迭代计算。等对Excel有了一定的基础后再慢慢去琢磨。
而你这个问题中,姑且不去考虑你的公式要表达什么,是否能计算到正确数据(因为你也没说明,别人是无法知道你要计算什么的),单就迭代计算来看,如公式中的E3-F3,假设公式能得到结果,那么公式输入完成后,就会按在选项中设定的迭代次数(默认为100次)计算100次E3-F3。之后,一旦工作表中有任何操作,就又运算100次。这是你希望的结果吗?且工作表中每有计算或输入时,这个公式都动作的。
所以建议自己先理清自己要干什么,初学者最好先不要去碰迭代计算。等对Excel有了一定的基础后再慢慢去琢磨。
追答
根据你的实例数据模拟,迭代次数设为1次,F3得到结果12.3905。但如上所述,工作表中有其他操作,如简单地在其他单元格中输入后回车确定,F3就会按设定的迭代计算次数再循环一次,就会出错了。至于为何出错,自己可把这前一次得到的12.3905代入到公式中进行计算,看为何会是错误结果了。
如果迭代计算的结果是你所需要的,可在选项中设置迭代计算次数为1,并把公式修改为:
F3=IF(E3="","",IF(OR(F3="",F3=0,ISERROR(F3)),(D3*(E3-F3)/(E3-1))^0.5/TANH((D3*(3-FJ3)/(E3-1))^0.5),F3))
看能否满足你的需要。这样加上IF条件后,F3既不是空值,也不为0,也不是错误值,就取F3本身,即第一次计算得到的结果,这样就把F3的结果固定下来了。
展开全部
不知道你要什么样的结果,公式本身就有点问题,最好加一个判断(即计算到什么样的程度就终止迭代计算,不然以后会一直迭代计算下去的)
说一下#NUM错误的问题
公式第一次计算结果是F3=12.3905 (第一次计算F3=0)
第二次迭代计算结果就是#NUM了
问题出在(D3*(E3-F3)/(E3-1))^0.5带入第一次F3的结果是-382.925784066794^0.5
负数开方的结果就是#NUM了(因为该公式不能计算虚数,虚数有其他的函数)
说一下#NUM错误的问题
公式第一次计算结果是F3=12.3905 (第一次计算F3=0)
第二次迭代计算结果就是#NUM了
问题出在(D3*(E3-F3)/(E3-1))^0.5带入第一次F3的结果是-382.925784066794^0.5
负数开方的结果就是#NUM了(因为该公式不能计算虚数,虚数有其他的函数)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
EXCEL不能进行循环引用,F3单元格里的函数不能再包含F3了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询