2012-02-08 51 views
1

我有兩個獨立的Excel文件,其中包含一箇舊的和一個新的電氣設備寄存器,都包含由相同資產編號標識的電氣設備記錄。Excel中的數據匹配

第一個文件是我們舊的資產登記冊,其中包含舊的資產編號和工廠的完整描述。第二個文件是新的資產登記冊。在某些情況下,進行新資產登記的人員對該工廠的內容進行了有意義的描述,但是當他們在某些工廠中看到我們的舊資產編號時,他們只是用它作爲描述。

我需要做的是從舊文件中提取新文件中任何記錄的描述,其中描述=舊文件中該工廠的資產編號。

I.e.

if (current_cell_value exists in old register) 
    {pull description of that item from old register and store in corresponding cell in new register;} 

舊文件看起來像這樣:

 
5538 PC 
2398 Monitor 

新文件看起來像這樣:

 
1449449 Office IEC LEAD 
1449450 Office MONITOR 
1449451 Office 5538 
1449452 Office 2398 
1449453 Office IEC LEAD 

最後,我想新的文件看起來像這樣:

 
1449449 Office IEC LEAD 
1449450 Office MONITOR 
1449451 Office PC 
1449452 Office MONITOR 
1449453 Office IEC LEAD 

我將如何做到這一點?

回答

3

假設你可以將舊資產表中的列A和B複製到一個空表在新的工作簿,讓我們把它們放在一個名爲「老」片,再在A和B列

現在假設您的新數據集是列A,B和C,它是列C,您需要更改「某些」值。

在一個空列,比方說D2,把這個配方並抄下:

=IF(ISNUMBER(MATCH(C2, Old!$A:$A, 0)), VLOOKUP(C2, Old!$A:$B, 2, 0), C2) 

現在你有一個新的價值觀,並希望所有的NUMERICS匹配,現在顯示舊寄存器描述。

突出顯示新值列並複製它們。 單擊列C中的原始值組並執行編輯>選擇性粘貼>值

現在,清除D列並完成。

注:如果你使用的是Excel 2007及更高版本,那麼你可以使用除上述簡單的公式,你可以使用這個:

=IFERROR(VLOOKUP(C2, Old!$A:$B, 2, 0), C2) 
+0

感謝您的!除了將兩列合併在一起的最後一步之外,這一切都奏效了。 D列結束時沒有匹配的零和有匹配的數據,因此當您將此列中的值粘貼到列C時,原始數據將被覆蓋。我只想覆蓋數字。 因爲所有我想要替換的數據都是數字,所以我用IF =(ISNUMBER(C1),D1,C1)解決了這個問題,但是我想你的解決方案必須自動實現某種方式嗎? – 2012-02-08 06:26:25

+0

我給出的公式應該在D列中創建一個完整的新列表。對於與舊寄存器不匹配的值,新列表應顯示C列中的新值。當在C列頂部複製>編輯> pastespecial>值時,它應該用新的扁平值替換所有值,而不是公式。再試一次。 – 2012-02-08 07:00:36

+0

謝謝,不知道我做錯了什麼,但是當我在真實數據上使用它時,它們都結束了。乾杯。 – 2012-02-09 06:33:46