2013-09-23 68 views
0

我有一個奇怪的問題,我希望有人能幫助我。我在A列的項目清單,並在列項D.這些大多是相同的另一份名單有B列只是數個項目在Excel中比較和移動字段

Column A  Column B Column C   Column D 
1015   1015   $25    $5 
1025   1035   $25    $5 
1035   1045   $25    $5 
1045   1055   $25    $5 

行,所以我想這樣做是什麼使用列A中的項目,然後與列B進行比較。

然後我想從BD向下移動行,以便D靠近A並具有相同的skus。

Column A  Column B Column C   Column D 
1015   1015   $25    $5 
1025   
1035   1035   $25    $5 
1045   1045   $25    $5 

請幫忙!非常感謝你!!!

+0

您正在尋找一個公式來做到這一點?或者你想讓這個在VBA中完成。無論哪種情況,你能告訴我們你有什麼嘗試,你卡在哪裏? –

回答

0

假設沒有不匹配的值存在在列B.

對於VBA溶液嘗試:

Sub MatchRows() 
    Dim sheet As Worksheet 
    Set sheet = ActiveWorkbook.Sheets("Sheet1") 

    'First Column 
    Dim rngA As Range 
    Set rngA = [A1:A10] 
    Dim datA As Variant 
    datA = rngA 
    Dim i As Long 

    'Second Column Match 
    Dim rngB As Range 
    Set rngB = [B1:B10] 
    Dim datB As Variant 
    datB = rngB 
    Dim j As Long 

    'Store duplicates 
    Dim rngString As String 

    'First Column loop 
    For i = LBound(datA, 1) To UBound(datA, 1) 
    'Second Column Loop 
    For j = LBound(datB, 1) To UBound(datB, 1) 
     'Check if duplicate 
     If datA(i, 1) = datB(j, 1) And i <> j And Not IsEmpty(datB(j, 1)) And Not IsEmpty(datA(i, 1)) Then 
      Dim rng As String 
      rng = Chr(rngB.Column + 64) & j & ":" & Chr(rngB.Column + 64 + 2) & j 
      Range(rng).Select 

      For k = 1 To (i - j) 
       Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
      Next 
     End If 
     Next 
    Next 
End Sub 

注意,我硬編碼的數量範圍和偏移值(2)列推下來。

0

假設您的輸入位於Sheet1上。然後,在一個新的工作表複製以下公式單元格

A1: =Sheet1!A1 
B1: =IFERROR(VLOOKUP(A1;Sheet1!$B$1:$D$4;1;FALSE);"") 
C1: =IFERROR(VLOOKUP(A1;Sheet1!$B$1:$D$4;2;FALSE);"") 
D1: =IFERROR(VLOOKUP(A1;Sheet1!$B$1:$D$4;3;FALSE);"") 

,然後複製的第一行的行2,3和4