使用主列表创建计数矩阵

问题描述 投票:0回答:1

我有三张桌子。

第一个表是 REPORTS_MASTER_LIST 包含 REPORT_NAME、REPORT_CATEGORY 列。这包含用户可以执行的所有报告及其类别。

第二个表是 USER_REPORT_EXECUTION 包含 USERNAME、REPORT_NAME、REPORT_CATEGORY 列。该表中的每一行都是由用户执行的报告。

第三个表是 USER_DEPARTMENTS_LIST 包含 USERNAME、USER_DEPARTMENT 列。这包含所有用户及其部门。

我想创建一个矩阵,在左侧(行)显示REPORT_TYPE,可以展开以显示REPORT_NAME。在矩阵(列)的顶部,它应该是USER_DEPARTMENT。矩阵中显示的值应该是计数,代表 USER_DEPARTMENT 对于每个 REPORT_NAME 执行的报告数量。

目前我可以仅使用 USER_REPORT_EXECUTIONUSER_DEPARTMENT 表来执行此操作。问题是,如果 REPORTS_MASTER_LIST 中有一个从未被用户执行过的报告,它不会显示在矩阵中,尽管我需要它显示并为每个 USER_DEPARTMENT 显示“0” 。有没有办法通过以某种方式将 REPORTS_MASTER_LIST 表集成到矩阵中来做到这一点?

powerbi powerbi-desktop powerbi-datasource
1个回答
0
投票

我使用了这个示例数据,因为你没有提供任何数据:

表 REPORTS_MASTER_LIST :

REPORT_NAME REPORT_CATEGORY
Report A    Type 1
Report B    Type 1
Report C    Type 2

表 USER_REPORT_EXECUTION :

USERNAME    REPORT_NAME REPORT_CATEGORY
User1       Report A    Type 1
User2       Report A    Type 1
User1       Report B    Type 1

表 USER_DEPARTMENTS_LIST :

USERNAME    USER_DEPARTMENT
User1       Dept 1
User2       Dept 2

我创建了以下关系:

  • 将 REPORTS_MASTER_LIST 链接到 REPORT_NAME 上的 USER_REPORT_EXECUTION
  • 将 USER_REPORT_EXECUTION 链接到 USERNAME 上的 USER_DEPARTMENTS_LIST enter image description here

您需要创建一个度量来计算报告执行次数,同时包含计数为零的报告:

Report Execution Count = 
CALCULATE(
    COUNTROWS(USER_REPORT_EXECUTION),
    USER_REPORT_EXECUTION[REPORT_NAME]
)

然后使用 COALESCE 将未执行的报告显示为 0:

Report Execution Count (All Reports) = 
COALESCE(
    CALCULATE(
        COUNTROWS(USER_REPORT_EXECUTION),
        USER_REPORT_EXECUTION[REPORT_NAME] IN VALUES(REPORTS_MASTER_LIST[REPORT_NAME])
    ),
    0
)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.