如何获取 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 公式和所有相关过滤器。
我正在尝试在 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 公式和所有相关过滤器。