[英]Compare two sheets and find differences, copy to third sheet
我一直在嘗試比較兩張紙。 這些表是版本,一個在八月制作,另一個在九月制作。 在工作表1中,列CI具有唯一的ID,該ID也可以在工作表2中,但也可能不存在。 另一方面,我可以在工作表2中有新ID,而在工作表1中不存在。
我在嘗試着:
識別不在“其他”工作表中的ID,將整行復制到sheet3
檢查其他工作表中是否存在C列值,則必須找出兩行12列的差異
例如,在sheet1中:
ID Jan Feb Mar Apr May
14578596 125 125 125 0 10
22345697 10 10 10 10 20
12563654 150 150 75 75 75
85745896 890 890 890 890 790
在表2中:
ID Jan Feb Mar Apr May
14578596 125 125 125 0 10
12563654 150 150 75 75 75
85745896 890 890 790 890 790
87544545 0 0 0 0 10
在工作表3中,它應復制新添加的ID 87544545
和以下各列中的所有值。 它也應該復制ID的22345697
整行,因為另一張表中不存在ID被認為是不同的。
對於兩個表中都存在的其他表,應取“ Jan-Jan”並返回差值。 因此,應該查找其他工作表中是否存在“ ID”,如果存在,則將Jan-Feb-Mar彼此進行比較。 請注意,ID在工作表中的位置不同。 使用ID 85745896,它將返回:
ID Jan Feb Mar Apr May
85745896 0 0 100 0 0
我嘗試查看諸如比較2張紙中的數據並查找不匹配項以及檢查兩行是否在MS Excel中完全相同的主題,但似乎無法使它們在我的挑戰下工作。
Sub compare()
For i = 1 To last_cell_mainSheet
For j = 1 To last_cell_sheet2
If Worksheets("main_sheet").Range("a" & i).Value = Worksheets("sheet2").Range("a" & j).Value
Then
Worksheets("main_sheet").Range("C" & i).Value = Worksheets("sheet2").Range("b" & j).Value
End If
Next j
Next i
End Sub
解決此問題的最簡單方法是使用excel公式。 (如果您只想執行一次或偶爾執行一次。)如果您需要重復執行(如果經常執行(或擁有大量數據),請使用VBA>
您將需要了解有關VLOOKUP以及IF和ISNA的信息。
您的公式將是:
=IF(ISNA(VLOOKUP(MyIDCell,TheTableInTheOtherSheet, 1, false)),"N","Y")
TheTableInTheOtherSheet是一個從ID列開始的范圍(並且只需要一個列)
再次在sheet1上使用vlookup公式列以從sheet2獲取Jan的值。 添加公式進行比較。
您的公式將類似於:
=VLOOKUP(MyIDCell,TheTableInTheOtherSheet, 2, false)
TheTableInTheOtherSheet是從ID列(和兩列寬)開始的范圍
2獲取第二列值
有了數據后,您可以排序或過濾以減少需要復制到工作表3的列表(最好排序)。 然后復制並粘貼它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.