我一直试图比较两张纸。这些床单是版本,一个是八月制造的,另一个是九月制造的。在Sheet1中,列C我有一个唯一的ID,也可以在表2中,但也可能不存在。另一方面,我可以在表2中使用新的ID,这在Sheet1中不存在。
我想:
识别不在“其他”工作表中的ID,将整行复制到工作表3
检查其他工作表中是否存在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
整行,因为在另一张表中不存在被视为差异。
对于其他两张纸中存在的纸张,它应采用“Jan-Jan”并返回差值。所以它应该查找其他表中是否存在“ID”,如果存在,则将Jan-Feb-Mar相互比较。请注意,ID不在工作表中的相同位置。 ID 85745896将返回:
ID Jan Feb Mar Apr May
85745896 0 0 100 0 0
我试过看一下这样的话题 Compare data from 2 sheets and find mismatches 和 Check if two rows are the EXACT SAME in MS Excel但似乎无法使它们在我的挑战中发挥作用。
答案 0 :(得分:2)
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
答案 1 :(得分:0)
解决此问题的最简单方法是使用excel公式。 (如果您只想做一次,或偶尔做一次。)如果您需要经常重复(或有大量数据),请使用VBA>
您需要了解VLOOKUP以及IF和ISNA。
你的形式将是:
=IF(ISNA(VLOOKUP(MyIDCell,TheTableInTheOtherSheet, 1, false)),"N","Y")
TheTableInTheOtherSheet是一个以ID列开头的范围(只有neededing一列)
再次使用sheet1上的vlookup公式列从sheet2获取Jan的值。添加一个公式来比较它们。
您的公式将类似于:
=VLOOKUP(MyIDCell,TheTableInTheOtherSheet, 2, false)
TheTableInTheOtherSheet是一个以ID列开头的范围(宽两列)
2获取第二列值
获得数据后,您可以对数据进行排序或过滤,以减少需要复制到表3的列表(最好排序)。然后复制并粘贴它们。