Excel - 自动递增数字直到找到解决方案(使用无 VBA 且无数据 Table)
Excel - Auto Increment Number until Finding Solution (Using No VBA and No Data Table)
我精通Excel用户,但我不想使用VBA或数据Table来解决以下问题。
最好,我想使用 Goal Seek 或 Solver 或任何其他不需要宏(循环)且不需要大数据 table 跨越许多的简单方法行。
问题如下:在单元格 B1 中,解是 15,621(也有其他解超过这个数字)
但是我想从1开始查找,每次加1,或者每次加5(可能的话,1、6、11等),直到D17单元格等于1,最终等于1 在一百万以下说很多次。
我可能想从 20,000 开始更改起点等
这可能吗? Goal Seek 找不到它,因为公式使用 Mod、Min、Max.. 因此不会线性收敛。
有没有其他方法可以用 Goal Seek 或 Excel Solver 来重写这道题。
这是一道著名的数学题(http://mathcentral.uregina.ca/QQ/database/QQ.02.06/meadow4.html),但我想用Excel。
我知道我可以使用 vba 循环和数据 table 来解决。但是,我想要一个使用目标搜索或求解器或其他未知的更简单的解决方案。
Excel 的“迭代计算”或许可以解决问题。
如此处所示:ablebits.com: "Circular reference in Excel - how to check, find, enable, or remove"
迭代计算允许公式的循环依赖。在 Excel 2010 中,您可以在“Excel 选项”->“公式”->“计算选项”->“启用迭代计算”中找到它。
注:32767是Excel2010
的最大迭代次数
在您的示例中,您可以在(比方说)B2 中有一个变量最初设置为您的最小值。只要未找到解决方案,B1 就会设置为类似于 B2。如果找到解决方案,则将其设置为 B2 减去增量。
现在,如果您将 B2 更改为 B1 加上增量,Excel 的迭代计算应该在您的解决方案处停止。
示例:
B2 = 1
B1 = =IF(D17<>1, B2, B2-1)
B2 = =B1+1
更新 (基于@ihightower 的评论):
当值变化小于定义的阈值“最大变化”(默认值:0.001)或“最大迭代”已执行时,迭代计算停止。
在每个 运行 的末尾, B2 已经包含下一个的初始值。要调用下一个迭代计算,请转到结果的单元格 D17,按 [F2],然后按 [Ctrl]+[Enter]。
要跳转到新的初始值,请将 B2 设置为新的最小值,然后设置为 =B1+1。
我精通Excel用户,但我不想使用VBA或数据Table来解决以下问题。
最好,我想使用 Goal Seek 或 Solver 或任何其他不需要宏(循环)且不需要大数据 table 跨越许多的简单方法行。
问题如下:在单元格 B1 中,解是 15,621(也有其他解超过这个数字)
但是我想从1开始查找,每次加1,或者每次加5(可能的话,1、6、11等),直到D17单元格等于1,最终等于1 在一百万以下说很多次。
我可能想从 20,000 开始更改起点等
这可能吗? Goal Seek 找不到它,因为公式使用 Mod、Min、Max.. 因此不会线性收敛。
有没有其他方法可以用 Goal Seek 或 Excel Solver 来重写这道题。
这是一道著名的数学题(http://mathcentral.uregina.ca/QQ/database/QQ.02.06/meadow4.html),但我想用Excel。
我知道我可以使用 vba 循环和数据 table 来解决。但是,我想要一个使用目标搜索或求解器或其他未知的更简单的解决方案。
Excel 的“迭代计算”或许可以解决问题。 如此处所示:ablebits.com: "Circular reference in Excel - how to check, find, enable, or remove"
迭代计算允许公式的循环依赖。在 Excel 2010 中,您可以在“Excel 选项”->“公式”->“计算选项”->“启用迭代计算”中找到它。 注:32767是Excel2010
的最大迭代次数在您的示例中,您可以在(比方说)B2 中有一个变量最初设置为您的最小值。只要未找到解决方案,B1 就会设置为类似于 B2。如果找到解决方案,则将其设置为 B2 减去增量。 现在,如果您将 B2 更改为 B1 加上增量,Excel 的迭代计算应该在您的解决方案处停止。
示例:
B2 = 1
B1 = =IF(D17<>1, B2, B2-1)
B2 = =B1+1
更新 (基于@ihightower 的评论):
当值变化小于定义的阈值“最大变化”(默认值:0.001)或“最大迭代”已执行时,迭代计算停止。 在每个 运行 的末尾, B2 已经包含下一个的初始值。要调用下一个迭代计算,请转到结果的单元格 D17,按 [F2],然后按 [Ctrl]+[Enter]。
要跳转到新的初始值,请将 B2 设置为新的最小值,然后设置为 =B1+1。