Excel中的角色/权限分析:将用户权限列表与成对的禁止角色进行比较

时间:2019-06-18 11:52:04

标签: excel excel-formula

我正在做一些简单的职责分离测试,并且有两个数据集显示(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

我还可以转换数据,因此它是一个序列,例如对于user3:

Username       Roles
-------------------------------
user3          role4
user3          role500
user3          role5
...            ...

但是,我认为每个用户位于同一行中的权限更易于使用。

预期结果是用户3 将被标识为具有不允许的角色组合(role4role5)。

我一直在尝试各种INDEX(MATCH)和嵌套的VLOOKUP,但是我还不太清楚如何在数组中查找对,看看它们是否存在于一行值中。

在没有VBA的情况下可以做到吗?

1 个答案:

答案 0 :(得分:2)

我认为在没有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","")

您可以为更多用户创建更多列,然后拖动公式。