Нотатки ледаря excel знайти і пофарбувати в діапазоні з діапазону (ів)

Нотатки ледаря excel знайти і пофарбувати в діапазоні з діапазону (ів)

Нотатки ледаря excel знайти і пофарбувати в діапазоні з діапазону (ів)

Всі знайомі з умовним форматуванням?
УФ дозволяє форматувати клітинки в залежності від їх значень. Один з варіантів:
Знайти в діапазоні все входження "БЛА".
Створюємо правило для діапазону ($ 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), ну тут все зрозуміло

Нотатки ледаря excel знайти і пофарбувати в діапазоні з діапазону (ів)

Створюємо макрос з таким кодом:

Створюємо кнопочку на формі, і все :-)

Не скажу що найкращий варіант, наприклад можна додати вихід з циклу при першому входженні - це в рази збільшить швидкість роботи і т.д. і т.п.

І ще момент, на око колір осередки для і заливки і заливка знайдених різна, це пов'язано з тим що палітра для ColorIndex на багато менше
завантажити приклад

EXCEL Знайти і пофарбувати в діапазоні з діапазоном

А як зробити те ж саме, але шукане зберігається в декількох діапазонах, і різні кольори.

Діапазони я розташував на окремому аркуші:

А1 - це колір для значень, що повторюються. На рядку C2: XFD2 (іменований діапазон array_array) зберігаються назви іменованих діапазонів, які записані в диспетчері імен (назви повинні збігатися)

Нотатки ледаря excel знайти і пофарбувати в діапазоні з діапазону (ів)

Залишилася справа за малим - vba:

Нотатки ледаря excel знайти і пофарбувати в діапазоні з діапазону (ів)


У цьому прикладі вихід з перебору календаря при першому входженні, для заливки використовується не ColorIndex, а Color (rgb). тому кольору однакові.

Також можна відмовитися від іменованих діапазонів, залишивши тільки back_default, array_array і array_table, але доведеться навчити макрос розраховувати самому діапазони.