如何获取 table 视觉范围内的行数

How to get count of rows within table visual

我正在尝试在 Power BI 中创建一个卡片视觉对象,以显示 "Table visual is empty" 或 "Table visual is not empty" 的语句。在大多数情况下,我可以写一个 COUNT(SUMMARIZE([Table],[Col1],[Col2])) 的度量来评估记录的数量和 return 的结果。

但是,此视觉对象都包含来自多个来源的列 table。据我所知,使用 COUNT(SUMMARIZE()) 不能容纳超过一个 table。同样,如果我的 table 被切片器过滤为 0 行,则该度量将不会响应更改并显示不正确的结果。

我目前的措施是:

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

但正如我所说,此 SUMMARIZE 语句仅占一个 table,而视觉包含来自另外两个 table 的字段。

有没有一种方法可以计算 table 视觉对象中的行数,同时考虑切片器对其的影响?

示例数据集:基本状态

[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"

基础状态:

当前状态:

Table2 测量应显示 "Table2 Visual is empty"

数据模型:

我使用的 Dax 公式是:

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

将您的度量更改为以下内容:

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

结果:

如果你有多个 table 的值,我无法帮助你,因为如果不知道第二个 table 是什么,以及它与其他 tables。关键原因:

DAX 看不到"visuals"。它只能看到基础数据和过滤器。

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

所以,当我们说 "table is empty" 时,对您来说它意味着 "table visual is empty"。对于 DAX,这意味着:"after applying all relevant filters on the page, formula returns no records from the data model"。

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