如何获取表格可视化中的行数

时间:2019-05-14 18:38:22

标签: powerbi dax rowcount

我正在尝试在Power BI中创建显示“表视觉为空”或“表视觉不为空”的声明的卡片视觉。在大多数情况下,我可以写一个COUNT(SUMMARIZE([Table],[Col1],[Col2]))的度量来评估记录数并返回结果。

但是,此视觉效果都包含来自多个源表的列。据我所知,使用COUNT(SUMMARIZE())不能容纳一张以上的桌子。同样,如果切片器将我的表过滤为0行,则该度量将不会对更改做出响应,并且将显示错误的结果。

我当前的度量是:

EmptyTable = IF(COUNT(SUMMARIZE([Table1],[Col1],[Col2]...,[Col9])) = 0
, "Table has no rows", "Table contains rows")

但是正如我所说的,此SUMMARIZE语句仅占一个表,而可视化表包含来自其他两个表的字段。

在适应切片器对它的影响时,是否有一种方法可以对表格中的可视行进行计数?

示例数据集:基本状态

[Slicer]     [Table Visual]
ID 1 [✓]     ID   Value
ID 2 [✓]     1    10
ID 3 [✓]     2    20
ID 4 [✓]     4    40


[Dax Measure]: "Table Visual Is Not Empty"

示例数据集:首选最终状态

[Slicer]     [Table Visual]
ID 1 [ ]      ID   Value
ID 2 [ ]     
ID 3 [✓]
ID 4 [ ]     


[Dax Measure]: "Table Visual Is Empty"

基本状态:

Base State

当前状态:

Current state

表2度量应显示“表2视觉为空”

数据模型:

Data model

我正在使用的Dax公式是:

Table2.Measure = IF(COUNT(Table1[Value])=0 , "Table2 visual is empty", "Table2 visual is not empty")

1 个答案:

答案 0 :(得分:1)

将度量值更改为以下内容:

Table Is Empty = 
   VAR 
     Visible_Rows_Count = COUNTROWS( VALUES(Table2[ID2]))
   RETURN
     IF(Visible_Rows_Count > 0, "Table is not empty", "Table is empty")

结果:

enter image description here

enter image description here

在您拥有多个表中的值的情况下,我无法为您提供帮助,因为如果不知道第二个表是什么以及它与其他表的关系是不可能回答的。主要原因:

DAX无法看到“图像”。它只能看到基础数据和过滤器。

视觉为您而存在,人类。对于DAX,它们只是Power BI发布DAX公式结果的地方。公式本身没有“视觉”的概念。它只知道源数据和相关的过滤器(它们来自切片器,表行和列以及页面上的其他视觉效果)。

因此,当我们说“表为空”时,对您来说意味着“表的视觉为空”。对于DAX,这意味着:“在页面上应用所有相关过滤器后,公式不会从数据模型返回任何记录”。

这就是为什么要回答您的问题,所以必须了解数据模型,DAX公式以及所有相关过滤器。