2017-04-27 66 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我不知道你有什麼限制,但爲了正常化,你的工作應該把所有數據放在一張表中,並附加一列用於識別作業。 –