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

У меня 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 так, как я его хочу (например, автоматически заполнить его)?

Как говорили другие, я не думаю, что это возможно с функциями 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 
  • Как исправить ошибку округления с плавающей запятой в Microsoft Excel для Macintosh 2011?
  • MS Excel: как подсчитывать вхождения элементов в списке?
  • Excel. Создайте текстовый файл, названный по имени ячейки, содержащей другие данные ячейки.
  • Вычисление продолжительности в Excel с даты и времени
  • Как преобразовать файл Excel с несколькими листами в набор файлов CSV?
  • Добавление нуля до значений в столбец электронной таблицы Excel?
  • Как извлечь числовое значение после определенной строки в предложении в ячейке Excel?
  • Как заставить Excel интерпретировать запятую как разделитель по умолчанию в файлах CSV?
  • Предложения по созданию и управлению сложными функциями в Excel
  • Сумма, если ТОЛЬКО все ячейки имеют значение?
  • Автоматические копии строк с совпадающим столбцом с другим листом
  • Давайте будем гением компьютера.