Всі знайомі з умовним форматуванням?
УФ дозволяє форматувати клітинки в залежності від їх значень. Один з варіантів:
Знайти в діапазоні все входження "БЛА".
Створюємо правило для діапазону ($ A $ 1: $ A $ 150) з
формулою = СЧЁТЕСЛІ ($ A $ 1: $ A $ 150; "БЛА")
І все. А що робити якщо у нас не "БЛА", а цілий діапазон / масив (називайте як хочете) значень. Я не знайшов відповіді, як це зробити формулою (для порівняння стовпців є, але у мене з одного боку таблиця 31 стовпець * 70 рядків, з іншого 71 рядок * 1 стовпчик).
Довелося використовувати VBA.
Для початку, створюємо динамічний іменований діапазон. для стовпця знаємо як зробити, для таблиці потрібно вказати ширину.
Ось мій варіант:
calendar = зміщений (Лист1! $ A $ 2 ;; 1; СЧЁТЗ (Лист1! $ A $ 1: $ A $ 65539); 31), де в комірках стовпчика А просто стоїть цифра 1 (СЧЕТЗ вважає значення для висоти, якщо в проміжку осередок порожня , то висота буде на N менше), третій параметр зміщення до колонку В (щоб не враховувати стовпець А), останній параметр ширина таблиці.
array_date = зміщений (Лист1! $ AL $ 4 ;;; СЧЁТЗ (Лист1! $ AL $ 1: $ AL $ 65539); 1), ну тут все зрозуміло
Створюємо макрос з таким кодом:
Створюємо кнопочку на формі, і все :-)
Не скажу що найкращий варіант, наприклад можна додати вихід з циклу при першому входженні - це в рази збільшить швидкість роботи і т.д. і т.п.
І ще момент, на око колір осередки для і заливки і заливка знайдених різна, це пов'язано з тим що палітра для ColorIndex на багато менше
завантажити приклад
EXCEL Знайти і пофарбувати в діапазоні з діапазоном
А як зробити те ж саме, але шукане зберігається в декількох діапазонах, і різні кольори.
Діапазони я розташував на окремому аркуші:
А1 - це колір для значень, що повторюються. На рядку C2: XFD2 (іменований діапазон array_array) зберігаються назви іменованих діапазонів, які записані в диспетчері імен (назви повинні збігатися)
Залишилася справа за малим - vba:
У цьому прикладі вихід з перебору календаря при першому входженні, для заливки використовується не ColorIndex, а Color (rgb). тому кольору однакові.
Також можна відмовитися від іменованих діапазонів, залишивши тільки back_default, array_array і array_table, але доведеться навчити макрос розраховувати самому діапазони.