【问题标题】:Need help in excel to perform 4 cell lookup and copy in VBA在 excel 中需要帮助以在 VBA 中执行 4 个单元格查找和复制
【发布时间】:2016-01-11 15:52:51
【问题描述】:

我找到了 VLOOKUP,但它似乎不符合我需要执行的所有条件。 以下是此时阻止我的原因。如有任何帮助,我将不胜感激。

在 excel 中,我需要将电子表格 A 列 B 中特定单元格的值与电子表格 B 列 C 中的一系列值相匹配。然后在电子表格 B 中找到值的行中,我需要获取P列中单元格的值并将其复制到电子表格A列N中。

谢谢你,

【问题讨论】:

  • Index/Match。在您的情况下,在 N 列中输入:=Index(SheetB!P:P,Match(SheetA!B1,SheetB!C:C,0)),根据需要调整任何引用。
  • 为什么 VLOOKUP 不适合您?类似于 A!N2 中的内容 =VLOOKUP(A!B2,B!$C$2:$P$1000,14,false)
  • 好点@CharlesWilliams。我什至没有看到它已经按顺序排列了。但是,索引/匹配会占用较少的资源,因为它只查找 2 列数据,而不是 14 列。
  • @Scott:在这种情况下,INDEX/MATCH 并不比 VLOOKUP 快,它们都只查找一列:是什么让您认为它的资源密集度较低?
  • @CharlesWilliams - vlookup 正在查看 14 列以返回数据,而 Index / Match 仅查看 2 列。尽管在 Excel 的发展过程中这可能是一个微小的差异 (Index / Match vs Vlookup)

标签: excel excel-formula vlookup


【解决方案1】:

虽然VLOOKUP 有其用途,但我始终建议您使用INDEX 函数,因为您不受使用最左侧列的限制。

我认为您要查找的公式类型是(放在电子表格 A 的 N 列中):

=INDEX('[Spreadsheet B]Sheet1'!P:P,MATCH(B1,'[Spreadsheet B]Sheet1'!C:C,0))

这会将电子表格 A 中 B1 的特定单元格与电子表格 B 中 C 列中的值匹配,然后在相应行的 P 列中提供值。显然,您应该将“电子表格 B”更改为工作簿名称,将“Sheet1”更改为电子表格 B 中的工作表名称。

【讨论】:

  • 我同意知道如何使用更通用(更快)的INDEX/MATCH 函数对是更好的方法,但应该指出的是,没有限制使用VLOOKUP function 中的'leftmost' 列;只有 col_index_numtable_array 指定的范围内。
  • 对不起,我的意思是 lookup_value 必须在 table_array 的最左边(或第一)列,而不是工作表中的最左边。感谢您的澄清。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多