如果在公式中引用了公式所在单元格又不启用迭代计算,Excel 会发出警告,此时需要启用才能完成计算。迭代计算存在复原问题,因为它的作用范围是一个工作簿,如果要对多个工作簿生效,需要另存为模板。Excel中的迭代计算可根据一个或几个单元格的值迭代出另一个单元格的值,即数学运算中的根据一个或几个数经过多次计算来求出满足条件的值。以下就是Excel启用迭代计算的方法和几个计算实例,实例操作中所用版本均为 Excel 2019。

一、Excel启用迭代计算

1、如果在公式中引用公式所在的单元格,例如在 A1 中写公式 =A1 + B1,会提示“存在一个或多个循环引用”(如图1所示),这是因为没有启用迭代计算,只需启用即可解决此问题,方法见下面的演示。

图1

2、右 Excel 功能区,在弹出的菜单中选择“自定义功能区”,打开“Excel 选项”窗口,选择左上角的“公式”,单击“启用迭代计算”勾选它,点击“确定”,则启用了迭代计算;操作过程步骤,如图2所示:

图2

提示:依次选择“文件 → 选项”,也可以打开“Excel 选项”窗口。

最多迭代次数默认为 100,但可以自己修改,例如改为 10。最大误差值默认为 0.001,也可以根据实际需要修改为更小或更大的值。

二、Excel启用迭代计算复原问题

原本已经启用了迭代计算,但每次打开文件又提示没有启用,原因为:启用迭代计算只支持一个文档,如果要它支持所有的文档,需要把已启用的文档另存为模板,方法如下:

操作说明:单击“文件”,然后选择“另存为”,在切换到的页面中选择“浏览”,打开“另存为”窗口;单击“保存类型”下拉列表框,在弹出的选项中选择“Excel 模板”,点击“保存”。下次新建空白文档时,选择“个人”,再选择自己保存的模板,如图4所示:

图4

还有一种情况:如果打开 Excel 后,先新建了一个特别推荐的空白工作簿,无论是用已启用迭代计算的模板新建空白工作簿还是打开已启用迭代计算的工作簿,都自动取消启用迭代计算;但下次打开 Excel,如果先打开已启用迭代计算的工作簿,则不会自动取消。

三、Excel迭代计算实例

(一)用一个单元格的值迭代出另一个单元格的值

假如要用 B1 的值迭代出 A1 的值。双击 A1,输入公式 =A1 + B1,按回车,返回 500,这是 5 迭代了 100 次的结果,操作演示如图5所示:

图5

(二)批量迭代计算

1、假如要根据 A 列的值迭代出 B 列的值。双击 B1 单元格,把公式 =A1+B1 复制到 B1,按回车,返回 200;选中 B1,把鼠标移到 B1 右下角的单元格填充柄下,当鼠标变为黑色粗体加号后,双击左键,则返回剩余的值;A1 中的 200 也变为了 400。选中 A6,输入 64,单击 B7 结束输入状态,迭代结果又变化了;把 A5 中的值改为 320,迭代结果再次改变;操作如图6所示:

图6

注意:只要有修改,迭代结果都会发生改变,如果不希望改变,可以把结果复制出来或取消启用迭代。

2、一次计算出所有结果

上面先计算出 B1,再计算剩余的结果,B1 的值会改变,如果要求它的值不变,只能一次计算出全部结果,方法如下:框选择 B1:B6,输入公式 =A1+B1,按 Ctrl + 回车,则返回所有结果,操作如图7所示:

图7

(三)根据表达式迭代出满足条件的值

1、假如要根据表达式 |X-Z|/(X+Y)<=8% 迭代出 Z 的值。双击 C1 单元格,把公式 =IF(ABS(A1-C1)/(A1+B1)<=0.08,C1,C1+IF(A1<B1,0.1,-0.1)) 复制到 C1,按回车,返回 1.6;操作如图8所示:

图8

2、公式说明:

(1)ABS(A1-C1) 返回 A1 - C1 的绝对值,C1 的初始值为 0。ABS(A1-C1)/(A1+B1)<=0.08 是外层 If 的条件,如果结果为 True,返回 C1,否则执行 C1+IF(A1<B1,0.1,-0.1)。

(2)A1<B1 是内层 If 的条件,如果为 True,返回 0.1,即 C1 累加 0.1,否则返回 -0.1,即 C1 减 0.1,如此循环来找出满足条件的值。

注意:表达式一定要正确,即一定存在一个以上满足条件的值,否则公式会返回错误。如果表达式正确,无法返回正确的结果,可把迭代次数适当改大。

相关文章