在 Power BI 中使用条件查询共享驱动器权限层次结构

Querying Shared Drive Permissions Hierarchy with Conditons in PowerBI

我原来的数据结构是这样的:

    ID  SecurityGroups_CLEAN    EDIT_Drive.1    EDIT_Drive.2    READ_Drive.1    READ_Drive.2    DENY_Drive.1    DENY_Drive.2    DENY_Drive.3    Fullname_CLEAN
    15  HighStaff               L Drive         null            null            null            null            null            null            Smith, John
    17  Foreign_National        null            null            null            null            L Drive         M Drive         Q Drive         Smith, John
    23  Domain Users            U Drive 2       null            L Drive         Q Drive         null            null            null            Smith, John

经过一些转换、过滤、旋转、删除列等...我设法让它看起来像这样....

Fullname_CLEAN  Drive     Count   Permissions
Smith, John     L Drive     3     DENY_Drive.1
Smith, John     L Drive     3     EDIT_Drive.1
Smith, John     L Drive     3     READ_Drive.1
Smith, John     M Drive     1     DENY_Drive.2
Smith, John     Q Drive     2     DENY_Drive.3
Smith, John     Q Drive     2     READ_Drive.2
Smith, John     U Drive 2   1     EDIT_Drive.1

基本上,我需要应用以下逻辑来总结用户驱动器级别的权限。

  1. 如果用户属于对驱动器具有拒绝权限的安全组,那么无论另一个用户组是否授予他们对同一驱动器的读取或编辑权限,他们的权限级别都是拒绝。
  2. 如果用户属于对驱动器具有编辑权限的安全组,则无论另一个用户组是否授予他们对同一驱动器的读取权限,他们的权限级别都是编辑。
  3. 如果用户属于对驱动器具有读取权限的安全组,则他们的权限级别为读取。

对于最终输出:

    Fullname_CLEAN  Drive       Permissions
    Smith, John     L Drive     Deny
    Smith, John     M Drive     Deny
    Smith, John     Q Drive     Deny
    Smith, John     U Drive 2   Edit

现在,我意识到,由于我的排序和纯 ABC 巧合,我可以在将名称和驱动器号分组后直接使用 "min of an aggregated column",因为 Deny 来了在 Edit 之前,在 Read 之前,这将反映我的情况。但是,我希望学习 "right" 方法。

就我个人而言,对于这种情况,我会将其留给 ABC 排序,因为有一组固定的输入,并且它们已经按要求排序。

如果您正在想象不同的场景或不同的输入,那么我会添加一个 Custom/Calculated 列,其中包含一个 "if ... then ... else if ..." 声明 returns 数字等价物,例如

= if [Permissions] = "Deny" then 0 else if [Permissions] = "Edit" then 1 else if [Permissions] = "Read" then 2 else 999