我在一張表中創建了一個屬性爲ID
,NAME
的Excel工作表。如何在唯一ID的幫助下將圖紙1數據與圖紙2進行對照?
表1:
在另一片材,我有以隨機的方式的名字和他們必須被映射到與來自SHEET-1
數據的參考它們的正確ID。
表2:
突出顯示的值被手動輸入。有沒有可以自動填充數據的公式。
注意:上面的數據是樣本集中的數據和原始數據在第2頁中不同。第2個頁面中會有超過2列。
我在一張表中創建了一個屬性爲ID
,NAME
的Excel工作表。如何在唯一ID的幫助下將圖紙1數據與圖紙2進行對照?
表1:
在另一片材,我有以隨機的方式的名字和他們必須被映射到與來自SHEET-1
數據的參考它們的正確ID。
表2:
突出顯示的值被手動輸入。有沒有可以自動填充數據的公式。
注意:上面的數據是樣本集中的數據和原始數據在第2頁中不同。第2個頁面中會有超過2列。
我在使用VBScript後得到了我的解決方案。
Private Sub GetID_Click()
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDefaultID = ThisWorkbook.Sheets.Item("DefaultIDs")
Set objGetID = ThisWorkbook.Sheets.Item("GetIDs")
iDefaultRC = objDefaultID.UsedRange.Rows.Count
iDefaultCC = objDefaultID.UsedRange.Columns.Count
iGetRC = objGetID.UsedRange.Rows.Count
iGetCC = objGetID.UsedRange.Columns.Count
For i = 1 To iGetCC
If objGetID.Cells(1, i) = "Name" Then
iGetNameCol = i
ElseIf objGetID.Cells(1, i) = "ID" Then
iGetIDCol = i
End If
Next
For i = 1 To iDefaultCC
If objDefaultID.Cells(1, i) = "Name" Then
iDefNameCol = i
ElseIf objDefaultID.Cells(1, i) = "ID" Then
iDefIDCol = i
End If
Next
For i = 2 To iGetRC
For j = 2 To iDefaultRC
If objGetID.Cells(i, iGetNameCol) = objDefaultID.Cells(j, iDefNameCol) Then
objGetID.Cells(i, iGetIDCol) = objDefaultID.Cells(j, iDefIDCol)
End If
Next
Next
End Sub
在這種情況下,我會做的只是切換一張表中的字段,以便它們的順序相同,然後執行vlookup。我會這樣做,因爲我有能力篡改標題訂單。不知道你是否也這麼做,但最好把所有事情都組織起來。
如果(ISNA(VLOOKUP(A2, 'Sheet 1中',A:B,2,FALSE)), 「」,VLOOKUP(A2, 'Sheet 1中',A:B,2,FALSE))
*在將sheet1中的頁眉順序切換爲第一列的名稱後,然後在第二列上輸入id
我對此的解決方案是將兩張表放入MS Access並執行連接查詢。特別是如果桌子很大。這就是我多次完成它的原因,這就是爲什麼我總是獲得包含MS Access的Office版本的原因。花費幾分鐘,這是值得的努力。
這是用於在工作表之間查找的非常通用的公式。它從查找表的列A的列A中查找鍵,並返回與當前列名稱相同的列的值(標題在第7行)。查找鍵必須位於查找的左側值,或VLOOKUP不起作用:
=VLOOKUP($A:$A,'Lookup sheet'!$A:$ZZ,MATCH($7:$7,'Lookup sheet'!$7:$7,0),FALSE)
或者如果該值(A:A)是對鍵的左側(在d:d)在查找表,您需要知道列的值:
=INDEX('Lookup sheet'!$A:$A,MATCH($E:$E,'Lookup sheet'!$D:$D,0))
嘗試INDEX/MATCH組合而不是VLOOKUP。爲什麼[vba]和[excel-vba]標籤? – pnuts
@pnuts你能告訴我這個公式嗎? – JaVaRaS
我懷疑你在我和你的評論之間的時間裏通過研究的方式表現了很多,但是它發生了,我寫了一個相對冗長的(對我來說)只有[小時前]的解釋(http://stackoverflow.com/a/33311631/1505120)。 – pnuts