Я выполняю простое тестирование с разделением обязанностей и имею два набора данных, показывающих (1) запрещенные комбинации ролей и (2) список пользователей и роли, которые у них есть.
У некоторых пользователей есть до20 ролей и более 100 запрещенных комбинаций.
Ниже приведен пример структуры данных, которую я имею.
Запрещенные комбинации ролей
critical_1 critical_2
-----------------------------------
role1 role3
role2 role1
role4 role5
... ...
Роли пользователя
Username UserRole1 UserRole2 UserRole3 ...
-----------------------------------------------------------------------------
user1 role1
user2 role2 role6 role10
user3 role4 role500 role5
Вместо этого я также могу преобразовать данные в ряд, например, для пользователя 3:
Username Roles
-------------------------------
user3 role4
user3 role500
user3 role5
... ...
Однако я думаю,с разрешениями, которые находятся в одной строке для каждого пользователя, легче работать.
Ожидаемый результат будет таким, что user3 будет определен как имеющий запрещенную комбинацию ролей (role4
и * 1025).*).
Я экспериментировал с различными INDEX (MATCH) и вложенными VLOOKUP, но я не могу понять, как искать пары в массиве и видеть, существуют ли они в ряду значений.
Это какой-точто можно сделать без VBA?