2013-07-22 1 views
0

Извините, если это глупый вопрос (я искал и не мог найти ответ.) Я пытался выяснить если это возможно с функциями, но кажется, что мне нужно будет использовать макрос, у меня нет опыта с ними, но он может учиться.Excel Сравните две ячейки в одном листе с двумя в другой, скопируйте определенный диапазон ячеек, если они равны

Я пытаюсь сравнить 2 ячейки в листе 1, имя ресурса и код проекта (C и L) с двумя одинаковыми столбцами на листе 2 (где они являются A и D). Имя ресурса отформатировано так: Lanier, Joe, так что имя его имени имени запятой. Код проекта - это сочетание букв и цифр без пробелов. Если они одинаковы, я хотел бы скопировать ряд ячеек в листе 1 (от Т до Y) в столбцы сопоставляемой строки X через переменную AC в листе 2. Он перепишет любые данные в этих ячейках.

Если это возможно, если есть способ выделить ячейки или строки, которые не имеют соответствия, что было бы такой большой помощью, поэтому мой босс знал бы, что ему нужно было вручную скопировать. Спасибо!

EDIT: Включенный ниже макрос, который кажется, что он должен работать, но нет. Он выделяет все ячейки. Любая идея, что можно изменить?

Sub ertert()

Dim i&, j&, s$, col As New Collection 
Application.ScreenUpdating = False 
On Error Resume Next 
With Sheets("Sheet2") 
    For i = 1 To .Cells(Rows.Count, 3).End(xlUp).Row 
     s = .Cells(i, 1) & "~" & .Cells(i, 3) 
     If IsEmpty(.Item(s)) Then col.Add i, s 
    Next i 
End With 
With Sheets("Sheet1") 
    .Columns(1).Interior.Color = xlNone 
    For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row 
     s = .Cells(i, 3) & "~" & .Cells(i, 12) 
     If IsEmpty(col.Item(s)) Then 
      .Cells(i, 1).Interior.Color = vbYellow 
     Else 
      j = col.Item(s) 
      Sheets("Sheet2").Cells(j, 5).Resize(, 6).Value = .Cells(i, 24).Resize(, 6).Value 
     End If 
    Next i 
End With: Application.ScreenUpdating = True 

End Sub

ответ

0

отредактирован Июль 23 - 10: 30EST

нет VBA или макрос, необходимый вы можете использовать простые формулы и некоторые копировать и вставлять

на листе2, в конце столбцов данных, создать новую колонку (AD?) С помощью этой формулы

=IF(AND(IFERROR(VLOOKUP(A4,[book1]sheet1!$C$4:$C$14,1,FALSE),"")<>"",IFERROR(VLOOKUP(D4,[book1]sheet1!$L$4:$L$14,1,FALSE),"")<>""),[book1]sheet1!T4,X4) 

и скопировать его в течение следующих 6 рядов (AD для AI)

Я предположил, первый ряд равен 4, а формула поиска 10 строк в листе 1, корректировать по мере необходимости затем скопировать до последнего из вашего строки данных

, если у вас есть матч, данные Лист1 будут отображаться в противном случае, Лист2 данные будут там

копию этого куска, перейти к Х4 и используйте Edit - Paste Special - ЗНАЧЕНИЯ, если Excel 2003 или нажмите PASTE в верхнем левом углу и выберите PASTE VALUES, если Excel 2007+

Я рекомендую вам получить информацию о VLOOKUP, чтобы лучше понять это решение

приветствий

+0

Они находятся на разных рабочих книгах (извините за путаница!) Будет это решение до сих пор работают? Попытка сделать процесс таким же простым для моего босса. Спасибо за помощь. – user2464196

+0

Просто попробовал, это не похоже, что он проходит через весь лист (должен ли я указать это). Он должен пройти все данные на листе 1 для сравнения со значениями на листе 2, чтобы увидеть, есть ли совпадение. Вот почему я решил, что это должен быть макрос с использованием петель. – user2464196

+0

, чтобы ссылаться на другую книгу, изменить ссылки на ячейки [Book1] Sheet2 !, «Book1», являющееся именем указанной книги. –

Смежные вопросы