从volatile函数读取excel公式?

从volatile函数读取excel公式?,excel,excel-formula,Excel,Excel Formula,在单元格A1中有一个volatile函数say=getprice,它可能成功返回一个价格,也可能失败返回REF!。是否有办法在B1中编写一个公式,从A1中读取,如果成功,则获取值,如果失败,则保留最后一轮值?如果启用“启用迭代计算”,并将最大迭代次数设置为1,则: 我意识到这是一个迟来的回答,但这里有另一个选择,不能准确回答您的问题,但我仍然认为它是有用的信息: 我最近发现,数据验证下拉列表始终是非易失性的,即使您从下拉列表中选择了一个易失性值。从下拉列表中选择的值将无限期保留在单元格中,直到您

在单元格A1中有一个volatile函数say=getprice,它可能成功返回一个价格,也可能失败返回REF!。是否有办法在B1中编写一个公式,从A1中读取,如果成功,则获取值,如果失败,则保留最后一轮值?

如果启用“启用迭代计算”,并将最大迭代次数设置为1,则:


我意识到这是一个迟来的回答,但这里有另一个选择,不能准确回答您的问题,但我仍然认为它是有用的信息:

我最近发现,数据验证下拉列表始终是非易失性的,即使您从下拉列表中选择了一个易失性值。从下拉列表中选择的值将无限期保留在单元格中,直到您再次从下拉列表中进行选择

在您的情况下,在单元格B1中,您可以选择数据验证并使用以下设置进行设置:

这样,单元格A1将不断更新,每当您想要在A1中捕获该值时,您只需从单元格B1的下拉列表中手动选择唯一可用的选项,该选项将无限期地将该值存储在B1中,直到您再次从下拉列表中手动选择为止

我再次意识到这并不能准确回答您的问题,因为单元格B1不会自动更新,但这种方法有两个主要优点:

它允许Excel基本上拥有内存并查看过去的事件—否则无法完成的事情

它本质上是将易失性单元转换为非易失性单元


转换为非易失性单元格通常对提高电子表格的效率特别有用。例如,在单元格A1中,您可以使用volatile函数=NOW,然后使用此方法将此值快照复制到单元格B1中,并且工作簿中现在公式中需要的所有单元格都可以基于单元格B1而不是A1,因此,由于B1是非易失性的,因此有可能大幅提高计算时间。

最大更改选项的含义是什么,我应该如何设置它?是不是因为我只迭代一次,所以最大的变化无关紧要?最大的迭代次数,好东西。今天学点新东西。谢谢你,pnuts。@pnuts谢谢,我再次意识到这个答案对于这个特定的应用程序来说并不完美,但是对于某些应用程序来说,能够手动快照数据并保持其非易失性可能真的很有用。拥有临时内存而不使用vba是很有趣的,而更有趣的是将易失性单元转换为非易失性单元。thx共享!
=IF(ISERROR(A1),B1,A1)