Условное форматирование с несколькими COUNTIFS в Excel

У меня есть около 26 правил условного форматирования на одном листе, около 23 из них являются функциями СЧЁТЕСЛИ, которые выделяют повторяющиеся строки на основе категории выше 1. Есть ли способ сократить эти правила? Кажется, что рабочий лист намного медленнее, а также влияет на некоторый код VBA, который я использую для удаления / добавления строк внутри таблицы.

Ниже приведены несколько примеров формул, которые подсчитывают 2 критерия, и все они возвращают один и тот же цвет / формат, также есть некоторые случаи, когда элементы в столбце J должны быть освобождены, поэтому я не написал его для сопоставления ВСЕХ дубликатов в Столбец J:

=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"Critical")>1,$J14 = "Critical")
=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"High")>1,$J14 = "High")
=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"Low")>1,$J14 = "Low")
=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"Pending")>1,$J14 = "Pending")
=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"Under Review")>1,$J14 = "Under Review")
=AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"Open")>1,$J14 = "Open")

Есть предположения?

Возможно, вам потребуется привести больше примеров. Кроме того, все ли они возвращают разные цвета / форматирование? Или все равно?

dwirony 01.05.2018 17:25

Да, они возвращают тот же цвет / формат. Столбец E - это идентифицирующее поле, такое как номер счета, Столбец J - поле раскрывающейся категории. Если столбец E возвращает тот же номер счета, проверьте, относится ли столбец J к той же категории. Я также добавил еще несколько формул.

MSauce 01.05.2018 17:38

Что ж, вы определенно можете комбинировать некоторые из этих правил, используя OR, например: =OR(AND(COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,"Critical")>1,‌​$J14 = "Critical"),AND‌​(COUNTIFS($E$14:$E$1‌​7,$E14,$J$14:$J$17,"‌​High")>1,$J14 = "High"‌​),AND(COUNTIFS($E$14‌​:$E$17,$E14,$J$14:$J‌​$17,"Low")>1,$J14 = "L‌​ow")). Попробуйте это и посмотрите, улучшит ли это производительность.

dwirony 01.05.2018 17:43

Получение сообщения о том, что я не могу использовать ссылочные операторы (такие как объединения, пересечения и диапазоны) или константы массива для критериев условного форматирования. :(

MSauce 01.05.2018 17:59

Вы имеете в виду, что пытаетесь выделить случаи, когда номер учетной записи имеет одну и ту же категорию дважды?

JBStovers 01.05.2018 17:59

Да, но есть некоторые категории в столбце J, которые не могут быть дубликатами.

MSauce 01.05.2018 18:03
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
6
696
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот один из способов сократить количество формул, и я думаю, это, вероятно, ускорит процесс. Не тестировал.

Сначала создайте именованный диапазон для категорий, которые вы ДЕЙСТВИТЕЛЬНО хотите проверить на дублирование:

categories named range

Ваш первый критерий условного форматирования приведет к остановке, если категории нет в приведенном выше списке.

=COUNTIF(Category,$J14)=0    '<Set this one to "Stop if True", and don't set any format>

Следующие критерии условного форматирования будут проверять как столбцы E, так и J на ​​предмет дублирования.

=COUNTIFS($E$14:$E$17,$E14,$J$14:$J$17,$J14)>1    '<This only processes if the first condition evaluated to False>

Когда я вводил вторую формулу, она выделяла всю таблицу, какие-нибудь мысли? Я убедился, что первая формула находится ниже второй формулы в иерархии условного форматирования.

MSauce 01.05.2018 19:05

Я бы порекомендовал сначала поставить формулу =COUNTIF(Category,$J14)=0, А ТАКЖЕ установив флажок справа с надписью Stop If True. Таким образом, ваша основная функция COUNTIFS вообще никогда не будет оценивать, если категории нет в списке.

JBStovers 01.05.2018 19:20

Кроме того, дважды проверьте формулу Rule и диапазон Applies to в диспетчере правил условного форматирования. Иногда, когда вы изменяете применимость к диапазону, Excel изменяет формулу, и наоборот. Каждый раз, когда я меняю один, я дважды проверяю другой, чтобы убедиться, что он читается так, как я хочу.

JBStovers 01.05.2018 19:21

Есть ли способ сделать это для двух именованных диапазонов? У меня есть список, который будет выделяться на основе 2 критериев, но мне нужно создать еще одну функцию counttifs, где мне нужно выделить на основе 3 столбцов.

MSauce 02.05.2018 16:31

Если я вас правильно понимаю, вы просто воспользуетесь формулой AND, чтобы собрать столько, сколько захотите: =AND(COUNTIF(Category,$J14)=0,COUNTIF(OtherNamedRange,$Z14)=‌​0). Просто подумайте о первом условии (с Stop If True) как о выражении IF. ЕСЛИ column1 не исключен, а column2 не исключен и т. д. ЗАТЕМ запустите последующие правила условного форматирования.

JBStovers 02.05.2018 17:20

К вашему сведению, вы также можете свести это к одному правилу: =AND(COUNTIF(Category,$J14)>0,COUNTIFS($E$14:$E$17,$E14,$J$1‌​4:$J$17,$J14)>1). Но я думаю, что это будет более понятно, когда вы разделите его на две части.

JBStovers 02.05.2018 17:23

Другие вопросы по теме