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

У меня 3 листа в Excel «Open», «New», «Combine»

  «Открыть» лист (Старый список)

     Идентификационный номер билета |  Приоритет |  Отдел |  Положение дел 
     36009 |  1 |  Финансы |  01-Open
     34781 |  2 |  Финансы |  02-Vendor
     35776 |  1 |  Финансы |  01-Open

     «Новый» лист (новый список)
     Идентификационный номер билета |  Приоритет |  Отдел |  Положение дел 
     34781 |  3 |  Финансы |  01-Vendor
     35776 |  5 |  Финансы |  10-Closed
     35607 |  2 |  Финансы |  01-Open    

     «Объединить» лист (конечный результат)
     Идентификационный номер билета |  Приоритет |  Отдел |  Положение дел 
     36009 |  1 |  Финансы |  01-Open
     34781 |  3 |  Финансы |  01-Vendor
     35776 |  5 |  Финансы |  10-Closed
     35607 |  2 |  Финансы |  01-Open    

Поэтому я стараюсь объединить лист «Открыть» и «Новый» с листом комбайна, новый лист имеет приоритет над открытым листом. Мы получим 3 разных результата:

  1. Дублирующие результаты, которые являются билетами, которые существуют в Open и New. С дубликатом я получаю результаты только от «Нового» (отметьте это как желтый фон)

  2. Старые результаты, которые являются Билетами, которые находятся только в Открытом не в «Новом» листе (отметьте это как красный фон)

  3. Новые результаты – это билеты, которые только в New не в Open (отметьте это как зеленый фон)

Поэтому мне нравится копировать всю строку для каждой проверки на идентификаторе билета

В качестве примера я ищу Duplicates и New values ​​(From New sheet to Open sheet values) с помощью этой функции

=IF(ISERROR(VLOOKUP(New!B2;Open!$B$2:$B$998;1;FALSE));IF(New!B2=0;"Empty";"NEW");"Duplicate") 

Как я могу легко сделать лист Combine так, как я его хочу (например, автоматически заполнить его)?

One Solution collect form web for “Как объединить данные из двух листов и условно форматировать строки на основе листа происхождения”

Как говорили другие, я не думаю, что это возможно с функциями excel. Даже если это так, это будет медленно. Запуск макроса VBA будет намного быстрее. Я написал образец, который поможет вам по пути. Он должен более или менее делать то, что вы ищете:

 Public Sub do_all_the_things() Dim i As Integer Dim j As Integer Dim color As String i = 1 Do Until i = Range("'Open'!A1").End(xlDown).Row + 1 j = 1 color = "green" Do Until j = Range("'New'!A1").End(xlToRight).Column + 1 If Range("'New'!A" & j).Value = Range("'Open'!A" & j).Value Then color = "yellow" Exit Do End If If color = "green" Then Do Until j = Range("'Combined'!A1").End(xlToRight).Column + 1 If Range("'Combined'!A" & j).Value = Range("'Open'!A" & j).Value Then color = "red" Exit Do End If j = j + 1 Loop End If 'at this point we know what color the row is row_on = Range("'Combined'!A1").End(xlDown).Row + 1 Range("'Combined'!" & row_on & ":" & row_on).Value = Range("'New'!" & i & ":" & i).Value If color = "red" Then Range("'Combined'!" & row_on & ":" & row_on).Interior = 255 'red End If If color = "yellow" Then Range("'Combined'!" & row_on & ":" & row_on).Interior = 65535 'yellow End If If color = "red" Then Range("'Combined'!" & row_on & ":" & row_on).Interior.ThemeColor = xlThemeColorAccent6 'green End If i = i + 1 Loop End Sub 
  • Excel для подсчета количества одновременных сеансов в зависимости от времени начала и окончания
  • Перенести документ Excel в отдельное окно
  • Извлечение данных между двумя символами в Excel
  • Таблица сводных таблиц Excel - деактивировать функцию colapse / expand
  • Дублирование строки с формулами без изменения ссылок на ячейки
  • Супер медленный Excel, как я могу увеличить производительность?
  • Как я могу объединить сотни файлов таблиц Excel?
  • Как перенастроить базу данных Excel с 1 длинной строки, на 3 короткие строки и автоматически повторить процесс?
  • Создать форму timestamp для Excel
  • Изменение цветов круговой диаграммы
  • Excel VBA, чтобы превратить строку с переменным числом столбцов в строки фиксированной длины
  • Давайте будем гением компьютера.