我正在使用Power BI将来自多个系统的数据汇集在一起,并使用来自所有系统的数据显示仪表板。
仪表板上有几个过滤器,然后用于显示与所有系统中的一个对象相关的数据。
首次加载仪表板且未选择任何过滤器时,数据卡会显示表格中所有行的信息。
有没有办法让数据卡只显示一行数据?
或
如果有多行数据,请填空吗?
答案 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