Анализ ролей / разрешений в Excel: сравнение списка разрешений пользователей с парами запрещенных ролей - PullRequest
1 голос
/ 18 июня 2019

Я выполняю простое тестирование с разделением обязанностей и имею два набора данных, показывающих (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?

1 Ответ

2 голосов
/ 18 июня 2019

Я думаю, что самый простой способ сделать это без VBA - это создать вспомогательный столбец для пользователя (в примере ниже столбца H):

enter image description here

Формула для ячейки H2 будет следующей:

=+IF(AND(COUNTIFS($B:$B,H$1,$C:$C,$E2)>0,COUNTIFS($B:$B,H$1,$C:$C,$F2)>0),"Combination "&$E2&" - "&$F2&" is disallowed","")

Вы можете создать больше столбцов для большего количества пользователей и перетащить формулу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...