Excel formula 从行号指向另一个工作表的表中检索具有VLOOKUP的公式

Excel formula 从行号指向另一个工作表的表中检索具有VLOOKUP的公式,excel-formula,excel-2010,Excel Formula,Excel 2010,我想在一张纸上创建一个包含产品和公式的表(表2)。对于不同的产品,适用不同的配方。 我想从该表中检索公式,但使用Sheet1行中的行号 如何输入使用Sheet1中正确的行号计算的公式 我有一个可以计算文本字符串的UDF eval: =eval(vlookup(Product;Table;2;false) 从表中检索的公式应使用eval()所在的实际行的行号 我尝试了以下方法: ="D"&ROW(Sheet2!$A16)&"/G"&ROW(Sheet2!$A16)&

我想在一张纸上创建一个包含产品和公式的表(表2)。对于不同的产品,适用不同的配方。 我想从该表中检索公式,但使用Sheet1行中的行号

如何输入使用Sheet1中正确的行号计算的公式

我有一个可以计算文本字符串的UDF eval:

=eval(vlookup(Product;Table;2;false)
从表中检索的公式应使用eval()所在的实际行的行号

我尝试了以下方法:

="D"&ROW(Sheet2!$A16)&"/G"&ROW(Sheet2!$A16)&"/F"&ROW(Sheet2!$A16)&"*5"
这将检索公式,但eval()不会计算结果。

在您的示例中,product位于表第一列第16行的Sheet2上。如果希望在工作表上显示第16行,则可以在整列引用中使用,放弃表中的,也可以在结构化表引用中使用MATCH,并通过调整表标题行来补偿表中的“位置”

这可能会让人困惑,所以这里有一个例子

要查找工作表中bcd所在的实际行,可以使用以下公式之一

=MATCH("bcd", Sheet2!B:B, 0)
=MATCH("bcd", Table2[a], 0)+ROW(Table2[#Headers])
第一个简单地返回工作表上的第6行。第二个返回2,因为bcd位于ListObject的第二行中,并且这是由中的行调整的;e、 g.2+4=6

现在一切都清楚了,只需使用其中一个公式的结果作为

您自己的公式可以使用一系列将构造的字符串转换为实际单元格引用的s。然而,间接法被认为是不稳定的,最好尽可能避免

=INDIRECT("D"&ROW(Sheet2!$A6))/INDIRECT("G"&ROW(Sheet2!$A6))/INDIRECT("F"&ROW(Sheet2!$A6))*5
在您的示例中,产品位于表第一列第16行的表2上。如果希望在工作表上显示第16行,则可以在整列引用中使用,放弃表中的,也可以在结构化表引用中使用MATCH,并通过调整表标题行来补偿表中的“位置”

这可能会让人困惑,所以这里有一个例子

要查找工作表中bcd所在的实际行,可以使用以下公式之一

=MATCH("bcd", Sheet2!B:B, 0)
=MATCH("bcd", Table2[a], 0)+ROW(Table2[#Headers])
第一个简单地返回工作表上的第6行。第二个返回2,因为bcd位于ListObject的第二行中,并且这是由中的行调整的;e、 g.2+4=6

现在一切都清楚了,只需使用其中一个公式的结果作为

您自己的公式可以使用一系列将构造的字符串转换为实际单元格引用的s。然而,间接法被认为是不稳定的,最好尽可能避免

=INDIRECT("D"&ROW(Sheet2!$A6))/INDIRECT("G"&ROW(Sheet2!$A6))/INDIRECT("F"&ROW(Sheet2!$A6))*5

此解决方案基于Excel以R1C1样式引用单元格的功能。要使用它,您必须转到文件->选项->公式”选项卡,并选中“使用公式”组中的“R1C1参考样式”框。 此外,eval()函数必须能够计算此类公式 完成所有这些操作后,您只需检索公式。 为了把事情弄清楚,我将集中在一个例子上 下表为表1(产品“数据库”)的内容

“公式”列包含相关公式:
苹果:RC[-2]+RC[-1]
对于巴南:RC[-2]*RC[-1]
柠檬:RC[-2]/RC[-1]
下表为第2页的内容:

此处的“公式”列包含从表1检索的公式。“公式”列的公式如下:

=FORMULATEXT(INDEX(Sheet1!R2C1:R4C4,MATCH(RC[-3],Sheet1!R2C1:R4C1,0),4))
在Excel帮助中可以找到此处使用的每个函数(formulatext、index和match)的说明 可以看出,如果产品的排列方式不同,并且可能出现多次,则R1C1样式中表示的检索公式在表2中是正确的。唯一剩下的工作是应用eval()函数,在它被修改为计算R1C1样式引用的公式之后。
我希望它能有所帮助。

此解决方案基于Excel以R1C1样式引用单元格的功能。要使用它,您必须转到文件->选项->公式”选项卡,并选中“使用公式”组中的“R1C1参考样式”框。 此外,eval()函数必须能够计算此类公式 完成所有这些操作后,您只需检索公式。 为了把事情弄清楚,我将集中在一个例子上 下表为表1(产品“数据库”)的内容

“公式”列包含相关公式:
苹果:RC[-2]+RC[-1]
对于巴南:RC[-2]*RC[-1]
柠檬:RC[-2]/RC[-1]
下表为第2页的内容:

此处的“公式”列包含从表1检索的公式。“公式”列的公式如下:

=FORMULATEXT(INDEX(Sheet1!R2C1:R4C4,MATCH(RC[-3],Sheet1!R2C1:R4C1,0),4))
在Excel帮助中可以找到此处使用的每个函数(formulatext、index和match)的说明 可以看出,如果产品的排列方式不同,并且可能出现多次,则R1C1样式中表示的检索公式在表2中是正确的。唯一剩下的工作是应用eval()函数,在它被修改为计算R1C1样式引用的公式之后。
我希望这能有所帮助。

Hi Jeeped,我了解匹配和间接以及索引,但可能我没有足够准确地说明我想要什么。在表2中,我想指定每个产品需要计算的公式。这些公式中的行号应根据表1中的实际行进行更改/调整,其中,基于VLOOKUP(),正确的