如果VLOOKUP返回错误,如何保留以前的excel单元格值

时间:2014-11-26 08:18:30

标签: excel excel-vba excel-formula vba

参考表: https://docs.google.com/spreadsheets/d/1UQVeVLLuZbre_RL0H68K1yQ_3ybY3mRIBYPJUfmf1k0/edit?usp=sharing

在上面的参考表中,在行下,如果我将“alpha”更改为“beta”,相应的值将返回错误#N / A,因为公式无法找到名称参考。但我试图保留以前的值,而不是显示#N / A.

例如:当前寻找alpha和相应值的公式为10,因此VLOOKUP填充值字段为10.如果我在“行”中将alpha更改为beta,则对应于alpha的先前填充值(即10)将更改为#N / A因为vlookup无法找到正在寻找的名称。但我需要保留之前的值10而不是#N / A尽管vlookup找不到它。

2 个答案:

答案 0 :(得分:2)

公式将始终评估先例的当前值,并且无法有条件地恢复到这些先例的先前值。

您所描述的内容可以通过宏来实现,其中VBA可用于在备份方案中存储先前的值。对于一些小区,这样的场景可能是可行的,但对于大型数据集来说是不切实际的。

您可能想要重新考虑您的数据架构。可能还有其他方法,而不是您要求的方法。

答案 1 :(得分:0)

实际上,我能够使用公式来做到这一点。

= IFNA(VLOOKUP(value,table,col_index,[range_lookup]),current_cell)

current_cell将是您放置公式的单元格。 使用它的警告是,您将创建一个循环引用,这可能会导致您的一些计算无法正常工作。但启用迭代可以解决这个问题。