excel公式从易失性函数中读取?

时间:2017-09-29 03:57:18

标签: excel excel-formula

我在单元格=getprice()中有一个易变函数说A1,可能会成功,返回价格或失败,返回#REF!。有没有办法在B1中编写一个从A1读取的公式,如果成功,则获取值,如果失败,保留上一轮值?

2 个答案:

答案 0 :(得分:3)

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

=IF(ISERROR(A1),B1,A1)

答案 1 :(得分:2)

我意识到这是一个迟到的回应,但这是另一个没有准确回答你的问题的选择,但我认为它仍然是有用的信息:

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

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

enter image description here

通过这种方式,单元格A1将不断更新,并且只要您想要"捕获" A1中的此值,您只需从单元格B1中的下拉列表中手动选择唯一可用选项,该选项将无限期地将该值存储在B1中,直到您手动从投放中选择为止 - 再次列表。

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

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

  2. 它实质上将挥发性细胞转化为非易失性细胞。

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