На листе 1 у меня есть основной список данных с соответствующими атрибутами. Некоторые данные имеют более одного атрибута, некоторые имеют только один, и существует возможность пропусков. Атрибуты могут повторяться при назначении другому имени.
Ниже приведены некоторые примеры данных, поэтому мы все можем говорить об одних и тех же ячейках / именах и т. Д.
На Листе 2 происходит гораздо больше ввода / анализа данных произвольной формы. Пользователи могут выбрать «Имя» из раскрывающегося меню с помощью «Проверка данных», а затем выбрать из доступных атрибутов, соответствующих этому имени, снова с помощью раскрывающегося меню. Имена и атрибуты могут отображаться в любом порядке на листе 2.
Важно, чтобы все пары были рассмотрены во втором листе.
Можно ли использовать условное форматирование, чтобы выделить поле «Имя» (на листе 2), пока не будет хотя бы одна строка со всеми возможными парами? В приведенном ниже примере вы можете видеть, что мы забыли поместить любую информацию, касающуюся того факта, что Салли счастлива, и, следовательно, «Салли» была выделена, чтобы привлечь внимание к тому факту, что некоторая недостающая информация отсутствует.
![Example Data](https://i.stack.imgur.com/o5ePZ.png)
Текущие мысли:
У меня уже есть список атрибутов, которые соответствуют соответствующему имени - это то, что приводит в действие раскрывающееся меню на Листе 2, и генерируется в фоновом листе, когда выбирается имя на Листе 2. Я могу сосчитать непустые ячейки в этот диапазон, чтобы узнать общее количество требуемых пар.
Затем я хотел бы подсчитать количество неповторяющихся атрибутов в строках с тем же именем, что и текущая строка, и сравнить это значение.
Я ожидаю, что это попадет в области формул массива, но может быть ошибочным ...
Я также ожидаю, что формулы массива не будут работать напрямую с условным форматированием и потребуют использования «вспомогательного столбца» для управления форматированием. Дайте мне знать, если это неправильно?
Что-то вроде приведенного ниже (отформатировано как псевдокод для удобства чтения, но это следует читать как описание высокого уровня, а не как реальный код)
{Count the 1s in the array(AND(
'Check if it's a name match'
If($D$1:$D$10=[$ACurrent],[set flag to 1],[set flag to 0])
'Check if it's a unique value'
[somehow check array values set at 1 to see if there is a duplicate value in column E, and then set the array value to zero if so])
}
Имеет ли этот подход смысл, и как бы я мог построить эту фактическую формулу?
Я не против использовать VBA при необходимости, но предпочел бы по возможности избегать его (политика компании, извините).