Excel 2011,跨工作表的 VLOOKUP 和列表验证

Excel 2011,跨工作表的 VLOOKUP 和列表验证

我试图在工作表上创建一个下拉列表,用于在另一张工作表中查找匹配的值。下图是名为的工作表PricesforCSV。在这里,我希望 B 列中带圆圈的值是从第二张名为的工作表中提取的值invoiceLookup

定义列表的实际作用 B 列应列出价格,但目前为“FALSE”

如您所见,到目前为止,我已使用数据验证来使下拉菜单正常工作。它的定义如下=invoiceLookup!$D:$D

我想要查找的信息的表格invoiceLookup如下。E 列是我想要传达的价格。

此表包含我想要查找的信息

在 B 列中带圆圈的单元格中,PricesforCSV我尝试根据下拉列表的值执行查找。这是我目前针对此单元格使用的公式:

 =IF(ISNA(VLOOKUP(A3,invoiceLookup!D2:D300,2,0)),
  VLOOKUP(A3,invoiceLookup!E2:E300,2,0))

目前它返回的是 false。

这里的想法是搜索中的所有行以查找invoiceLookup!D2:D300与中的值匹配A3,如果找到,则用下一列中的相关值填充单元格:invoiceLookup!E2:E300

  • 我不确定这是最好的方法,我可以使用两列命名列表并从中获取值吗?
  • 下拉列表中的项目中可能存在空格的问题,但尝试没有空格的值目前无法解决问题。

感谢您花时间查看!

答案1

在很多情况下,只需花时间正确地提出问题,并用全新的视角简化公式,直到我开始看到结果并找到答案。

这就是我得出的结论:

=IF(NOT(ISNA(VLOOKUP(A3,invoiceLookup!$D:$E,2,0))),VLOOKUP(A3,invoiceLookup!$D:$E,2,0))
  • 第一个问题出现在 VLOOKUP 中,数组中的第二个值是存储返回值的位置,我以为它要求查找的起点和终点。实际上,我在与查找值相同的列中查找返回值。更正后的版本现在查看查找的整个列$D和返回值的整个列$EVLOOKUP(A3,invoiceLookup!$D:$E,2,0)

  • 我也误解了当有一个空单元格时ISNA返回的内容(我认为相反),这导致我添加了公式的前半部分:trueNOT=IF(NOT(ISNA(VLOOKUP(A3,invoiceLookup!$D:$E,2,0))), ...

编辑 ----------------------- 稍作修改,因为旧版本将“FALSE”添加到具有空值的单元格。以下内容将单元格留空:

=IF(ISNA(VLOOKUP(A20,invoiceLookup!$D:$E,2,FALSE)),"",VLOOKUP(A20,invoiceLookup!$D:$E,2,FALSE))

/编辑 - - - - - - - - - - -

我意识到 Excel 公式并没有获得那么多的流量,因为在过去的一天中只有大约 19 个人查看过它,但是对于那些再次遇到这个问题的人来说,我希望它是有用的。

相关内容