在 Excel 中从派生工作表编辑主工作表中引用的单元格

在 Excel 中从派生工作表编辑主工作表中引用的单元格

我使用的是 Excel 2010,有两个工作表。工作表 A 有一个唯一标识符列和其他带有值的列。工作表 B 有一个标识符列表和其他字段,我使用公式VLOOKUP从工作表 A 中的值填充这些字段。

理想情况下,我想编辑工作表 B 上的值并让它们在工作表 A 上更新,但这似乎不可能 - 当我尝试这样做时,我只是=VLOOKUP用原始数据覆盖我的公式。我说得对吗?没有办法做到这一点?

或者,是否有一个技巧可以点击或以某种方式自动从VLOOKUP工作表 B 中包含公式的单元格跳转到工作表 A 中的原始单元格?

我的总体目标是保存工作表 A 中的所有原始值,并且仅从工作表 B 中引用这些值,而无需手动搜索工作表 A 来更新数据。

答案1

要实现您的替代请求,您可以将该HYPERLINK函数与VLOOKUP

假设Sheet AA 列包含 ID,B 列包含值,则替换VLOOKUP

=HYPERLINK("#'Sheet A'!B"&MATCH(A2,'Sheet A'!$A:$A,0),VLOOKUP(A2,'Sheet A'!$A:$B,2,0))

这不仅会VLOOKUP像以前一样显示结果,而且当单击单元格时,还会超链接到 Sheet A 中找到的值。

答案2

您现在面临的主要问题是循环引用。

VLOOKUP 不是一种A = B关系,而更像一种if A then B关系(其中 A 和 B 是值数组,就像您的情况一样)。换句话说,它是单向的,A 不依赖于 B。据我所知,我认为 Excel 没有一种直接使用用户界面来处理循环引用的方法,因为公式不能存储在后端(除非您使用宏)。

一种方法是在 A 和 B 中都有相对值,并在第三张表(或许多额外列)中执行一些条件单元格,例如表 A 保存相对值(可能是 B 中的新更新值或 C 中的原始值),表 C 保存原始值,表 B 保存用于反映值和更新值的单元格。

在工作表 B 中,为每个引用的列创建一个新列。这将是更新值列。在工作表 C 中,存储您的原始值。在工作表 A 中,使用条件“如果工作表 B 中的更新值字段有值,则使用它,否则,引用工作表 C”。工作表 B 的反映值列仍将引用工作表 A,因此如果更新列有新值,它将动态更改。请注意,这并没有真正解决循环引用问题,而只是绕过它。

但是,如果您需要 Sheet A 为固定值而不是相对值,则必须复制或paste as value使用类似以下内容:

ActiveSheet.Range("A1:D1000").Value = ActiveSheet.Range("A1:D1000").Value

在 VB 中将相对值(使用公式)转换为固定值。

相关内容