Excel:Vlookup在命名范围内并返回范围之外的值

标签 excel offset vlookup named named-ranges

我需要找到一种方法来搜索命名范围中的值并返回该范围旁边的列。原因很简单:我确实使用 A 列中的命名范围进行列表验证。在此列表中,有产品类型的完整名称(例如继电器、接触器、外壳),我需要从 B 列返回简短描述(例如.Rly、Cont、Encl),以便当用户搜索列表时很容易找到他要查找的内容。我知道我可以将范围扩展到 $A:$B 但如果我这样做,那么 $B 的所有值都将包含在列表中...

这显示了一种找出我需要的方法:=VLOOKUP(A1;"RANGE+1C",2,0) 我尝试了很多使用偏移量和索引的方法,但找不到一种方法......我什至认为可以使用相对引用来完成它(例如=VLOOKUP(A1,Description;1"RC[1 ]",0) 或类似的东西...... 还查了谷歌找到了一些信息,但似乎很陌生......

我需要在公式中而不是在 VBA 中执行此操作。

以下是示例文件的链接: http://www.filedropper.com/descriptionbuilder

有什么提示吗?

谢谢!

最佳答案

您可能想要的是 MATCH 和 INDEX 组合,而不是 VLOOKUP。

MATCH 是一个函数,它告诉您从所选列表中找到重复值的行号 - 它就像 VLOOKUP 的一半。 INDEX 是一个函数,它根据您指定的位置 # 从列表中提取一个值 - 它就像 VLOOKUP 的另一半。

我在 A 列中看到您的 ID 数据的一个范围是描述 - 我假设 B 列没有与您的范围一致的“命名”范围。我假设 B 列有其他数据,并且 A 列从第一行之后的某个位置开始[具体来说,我假设它从第 5 行开始]。整个公式看起来像这样:

=INDEX(B:B,ROW(A5)-1+MATCH(A1,Description,0))

这表示:在描述中找到与 A1 中的文本匹配的行 #。然后添加 A5 - 1 的行号(这会将描述的顶部与 B 列的顶部对齐)。然后从 B 列中提取该值。

使用 VLOOKUP 和 OFFSET 的替代方法

另一种方法是首先定义“描述”中有多少行,然后使用该信息和 OFFSET 函数创建一个新区域,该区域本质上表示“描述”,但跨越 A 列和 B 列,而不仅仅是 A 列。这将如下所示(再次假设描述从 A5 开始):

=VLOOKUP(A1,OFFSET(A5,0,0,ROWS(Description),2),2,0)

这表示:计算描述中有多少行。使用 OFFSET 构建一个从 A5 开始的数组,其行数与描述中的行数相同,并且有 2 列。 (因此,如果描述中有 3 个项目,则为 A5:B7)。然后在 VLOOKUP 中使用该新范围,并尝试在 A 列中查找描述区域 A1,并返回 B 列中该行的结果。

关于Excel:Vlookup在命名范围内并返回范围之外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33110375/

相关文章:

excel - 单击 Bloomberg 功能区上的 RefreshWorkbook

python - 如何使用 Python 计算 Excel 文件中的工作表总数

excel - 检查 Outlook 中是否存在附件并显示数据

excel - 如何将数据从一张工作表导入到另一张工作表

google-sheets - 谷歌表格中的查找值

vba - 命令按钮不起作用

java - JTextArea - 如何在指定偏移处设置文本?

java - 确定偏移量是否在行号之间?

assembly - x86汇编寄存器和mov指令以及跳转偏移量

excel - 如何简化具有多个条件的 VLOOKUP 公式