2017-04-27 108 views
-1

我有一个“主”表,其中列A中的部件号和列B中的位置。我在列A中有大约200张只有部件编号的纸张。如何将VLOOKUP应用于所有纸张,每张纸上的号码都会在B列中显示我的位置?这将需要永久手动完成。谢谢VLOOKUP在所有页面上

+1

编写一个循环遍历所有200页的宏,并在每张表的B列中插入一个'vlookup'公式。 –

+0

零件号是否以任何方式命名和排序? – Fritz

+0

所有工作表都有一个工作名称(Job-123-top,Job-123-btm)等,并按最佳编号顺序进行排序。 – Noob2Java

回答

0

这是从Master工作表中实现数据查找的一种方法,假设包含查找值的起始单元格为A2。这还假定所有表都在同一工作簿:

=VLOOKUP(A2,Master!$A$2:$B$11,2) 

什么每个参数也由左到右的解释:

  • A2 - 细胞在200张的一个包含查找值。 (这可以是任何包含查找值的单元格)。
  • Master是包含要查找的数据的工作表的名称。
  • $A$2是表格数据在Master工作表中查找的左上角单元格,我们要使用$符号,因为查找表格左上方的单元格应该是固定的。
  • $B$11是在Master工作表中查找表格的右下单元格,我们要使用$符号,因为查找表格右下角的单元格应该是固定的。
  • 2,这是列索引,其中包括您想要成功查找返回的值。列索引从1开始并向右增加,索引1处的列包含查找值。在方案中,指数1是A列和指定2意愿索引列B的索引

为了处理未在表中找到的空白的细胞或细胞可以延长这个公式如下所示:

=IF(ISNA(VLOOKUP(A2,Master!$A$2:$B$11,2)),"",VLOOKUP(A2,Master!$A$2:$B$11,2)) 

该公式将执行查找,如果它没有找到它正在查找的值,它将使单元格保持空白,否则它会使用找到的数据填充单元格。

现在可以复制并粘贴到小区A2(或者与起始细胞替换A2),然后拖动式向下列到最后细胞需要VLOOKUPMaster片的数据表。对于每一行X,它都会更新相应查找值的查找返回数据。

您需要复制公式,然后拖动它以填充每张200张纸的整个B列,这有点乏味。另一种方法是编写一个循环遍历工作簿中每张工作表的宏,并用Master工作表中的查找结果填充相应的列。

VLOOKUP作品时查找值是在一些列X和返回值,数据,就是X.

如果要返回的数据是查找值的左边的右边,您必须使用稍微更复杂的MATCHINDEX的组合。

查找在不同的工作簿中的数据,您需要创建两个工作簿之间的链接,this article explains how to do so.

+0

感谢您的详细解释。出于某种原因,它为所有人复制相同的位置,直到在位置编号更改之前找到下一个位置。澄清..我的MASTER工作表在列A中有零件编号,在列B中有位置。所有工作表都有列A中的零件编号 – Noob2Java

+0

我不完全确定我理解问题。当你说“它为所有人复制相同的位置,直到它找到位置编号更改之前的下一个位置”时,是否表示在200列中的列A数据中存在间隙,并且它将最后找到的查找值复制到具有空查找值的单元格? – sparkplug

+0

是的,它看起来就像它根据你的问题所做的一样。 – Noob2Java

0

想想你的所有数据更改为单张纸。你可以试试这个自制功能:

Function AllSheetVLookup(ByVal lookup_value, ByVal search_col As Long, ByVal return_col As Long, Optional book_rng As Range) 
    Dim ws As Worksheet, r As Long 
    On Error Resume Next 
    For Each ws In IIf(book_rng Is Nothing, Application.Caller, book_rng).Worksheet.Parent.Worksheets 
     r = Application.WorksheetFunction.Match(lookup_value, ws.Columns(search_col), 0) 
     If r Then AllSheetVLookup = ws.Cells(r, return_col): Exit Function 
    Next 
    AllSheetVLookup = CVErr(2042) 'Not found, #N/A! returned 
End Function 

lookup_value - 价值进行搜索,在VLOOKUP; search_col - 工作表中要搜索的值的列号 return_col - 从匹配的匹配返回值的列号 book_rng - 可选。如果要搜索另一本书,请在另一本书中关闭单元格。如果没有被使用,则调用功能的书被使用。

例子:

=AllSheetVLookup("part_number", 1, 2) 

将搜索从当前图书的所有工作表在A列(1)值 “PART_NUMBER”,并返回列B(第二届)值。

+0

谢谢@LS_dev我无法将所有数据放在一张纸上的原因是我正在使用单张纸作业。所以每个部分都需要在它旁边有一个位置。我不太清楚如何使用这个功能? – Noob2Java

+0

可能是一个格式问题@sparkplug我发现这个,它似乎工作。现在如果能想出如何将这个公式应用于所有自动化表格中的B列,我将被设置。 = IFERROR(VLOOKUP($ A1&“”,MASTER!$ A $ 1:$ B $ 7,2,FALSE),“”) – Noob2Java

+0

@ Noob2Java我不知道你有什么限制,但为了正常化,你的工作应该把所有数据放在一张表中,并附加一列用于识别作业。 –

相关问题