Я нашел способ сделать это с помощью сводных таблиц - по одной на роль. Это немного сомнительно, стоит ли вам это делать, но зависит от того, сколько у вас действительно ролей. Я сделал это, используя 2 в качестве образца, вот суть:
- У вас есть (Excel) таблица, содержащая имена
- У вас есть таблица (Excel), содержащая дату собрания, RoleA, RoleB ... (я использовал Председателя и Секретаря в качестве номинальных примеров), в этих ячейках указывается имя человека, исполняющего эту роль
Затем вы создаете сводную таблицу для каждой роли (Вставка -> Сводная таблица). Используемые поля: метки строк - какую роль вы анализируете; Ценности - Дата встречи
Затем вы меняете тип результата, перейдя в Настройки поля, и измените его на Минимальный. Обратите внимание, что только люди, которые имели эту роль, будут отображаться здесь.
Повторите это для каждой роли.
Вернитесь к своей таблице имен и добавьте столбец для каждой роли, чтобы показать, когда они последний раз занимали эту роль. Формула для этого довольно громоздкая:
=IFERROR(GETPIVOTDATA("Meeting Date",Chair!$A$3,"Chair",People[[#This Row],[Name]]),0)
GETPIVOTDATA выдаст ошибку, если у них не было этой роли, поэтому я заменяю ошибки на 0 (произвольно малое число)
Затем вы можете идентифицировать человека, наиболее запоздалого для этой роли, используя:
=OFFSET(People[[#Headers],[Name]],MATCH(MIN(People[LastChair]),People[LastChair],0),0)
Если есть связь, человек, который появляется первым в вашем списке имен, будет указан здесь.
Надеюсь, что это имеет некоторое подобие смысла, спросите, если есть вопросы