权力BI diaplay一个值

时间:2017-10-30 13:22:32

标签: powerbi

我正在使用Power BI将来自多个系统的数据汇集在一起​​,并使用来自所有系统的数据显示仪表板。

仪表板上有几个过滤器,然后用于显示与所有系统中的一个对象相关的数据。

首次加载仪表板且未选择任何过滤器时,数据卡会显示表格中所有行的信息。

有没有办法让数据卡只显示一行数据?

如果有多行数据,请填空吗?

1 个答案:

答案 0 :(得分:1)

没有直接的方法来查看视觉中的行数,计算它们,如果超过1,则执行不同的操作。

也就是说,你可以做一些事情。

<强> HASONEFILTER

如果您的表中有一个特定列,选中后会将结果过滤到一行,然后您可以使用HASONEFILTER检查该列上是否有过滤器。 (如果你有多个替代列,其中任何一个过滤到一行,那也没关系。)

然后,您可以为测试HASONEFILTER的每个列创建一个度量。如果为true,则返回列的MAX。 (MAX的原因是因为度量总是必须聚合,但是1行列的MAX将与该列中的值相同。)如果为false,则返回BLANK()或空字符串,具体取决于您的偏好。

E.g。

ColumnAMeasure = IF(HASONEFILTER(Sheet1[Slicer Column]),MAX(Sheet1[COLUMN A]), "")
ColumnBMeasure = IF(HASONEFILTER(Sheet1[Slicer Column]),MAX(Sheet1[COLUMN B]), "")

其中Sheet1是表的名称,“Slicer Column”是用作切片器的列的名称

<强> HASONEVALUE

如果您有多个列可以组合使用过滤器(意味着在“切片列”上应用过滤器并不保证表中只有1行),那么您可以测试HASONEVALUE而不是测试HASONEFILTER

ColumnAMeasure = IF(HASONEVALUE(Sheet1[COLUMN A]),MAX(Sheet1[COLUMN A]), "")
ColumnBMeasure = IF(HASONEVALUE(Sheet1[Column B]),MAX(Sheet1[COLUMN B]), "")

请注意,HASONEVALUE会测试您尝试显示的当前列,而不是像HASONEFILTER那样的切片列。

HASONEVALUE的一个副作用是,如果您过滤到3行,但所有3行对于A列具有相同的值,则A列将显示该值。 (对于HASONEFILTER,A列将保持空白,直到您过滤掉一件事。)

低科技

上述两个答案都取决于您要显示的每个列的现有度量,以便您可以测试是否显示空白行。如果你有几十个专栏,这可能会变得很痛苦。

低技术替代方案是为每列添加一个空白的空行,然后对表进行排序,以便始终首先显示该行。 (并且缩短你的视觉效果,只有顶行是可见的。)从技术上讲,其他行将在下面并且有一个滚动条,但至少初始显示是空白而不是显示随机行。

希望这里有所帮助。其他人也可能有更好的解决方案。更多信息:

HASONEFILTER文档:https://msdn.microsoft.com/en-us/library/gg492135.aspx HASONEVALUE文档:https://msdn.microsoft.com/en-us/library/gg492190.aspx