我有一个名为" cell_range"在Excel中。我想从这个表中提取第四行和第五列。公式,
= vlookup(4,cell_range,5)
给了我正在寻找的价值。
但是,我也有文字" cell_range"在单元格A1中。而不是键入" cell_range"在我的公式中,我想引用" cell_range"间接地通过引用单元格A1。公式
vlookup(4,A1,5)
给了我一个"#N / A"错误。
我如何间接引用表" cell_range"在我的公式?
答案 0 :(得分:1)
使用INDIRECT:
=VLOOKUP(4,INDIRECT(A1),5)
答案 1 :(得分:1)
虽然你可以使用INDIRECT来执行这类工作,但我已经避开了它,原因是我在https://chandoo.org/wp/2014/03/03/handle-volatile-functions-like-they-are-dynamite/概述了
在这种特殊情况下,我会使用查找表和CHOOSE或INDEX,如下面的屏幕截图所示:
请注意,您需要使用我的方法预先指定您的区域。
以下是CHOOSE
的语法=选择(index_num,值1,值2,...)
以下是从微软发言到Jeff-speak的翻译:
= CHOOSE(你想要哪个区域?,第一区域,第二区域......)
如果使用下拉列表或单元格引用来提供index_num参数,则只需使用查找表将下拉列表或单元格输入的输出转换为索引号,该索引号告诉CHOOSE应使用列表中的哪个范围。 / p>
在此示例中,您使用此方法选择电子表格中的哪个区域进行求和。但是CHOOSE和INDEX可以用来做更多的事情。例如,您可以使用它们来允许用户动态选择在执行VLOOKUP时使用的查找表。或者,您可以让用户动态选择用户进行某些计算的工作表范围。确实是非常强大的东西!
答案 2 :(得分:0)
这是使用INDIRECT的绝佳选择。间接在直观上易于使用,但我同意用户应避免使用它。对于具有很多工作表的工作簿,我建议使用宏将其全部列出,而不是手动创建工作表列表。参见https://www.automateexcel.com/vba/list-all-sheets-in-workbook/