2017-08-05 26 views
1

在Power BI Desktop中,我尝试通过ID列(包含主键)重复值排序以下列。用另一列对重复值进行排序

enter image description here

这将返回错误:Nível2“中有不能超过一个值‘’......”

在这种other post似乎暗示是连接的值该列以便它们不会重复。

但我想让它们重复,以便它们可以在视觉效果中聚合值。

那么,这种情况的解决方法是什么?

在此先感谢您的帮助!

回答

1

问题是您的排序列(即您的ID列)包含您尝试排序的列(即Nivel2列)中每个值的多个值。

您需要确保您的排序列对于您尝试排序的列中的每个值只包含一个不同的值。

实现此目的的一种方法是根据您的ID列创建一个新的(计算的)排序列。它可以被定义如下:

SortColumn:=CALCULATE(MAX('YourTable'[ID]),ALLEXCEPT('YourTable','YourTable'[Nivel2])) 

这里的SortColumn将如何表现一个例子:

Id Nivel2    SortColumn 
1 Caixa    4 
2 Caixa    4 
3 Caixa    4 
4 Caixa    4 
5 Depósitos à ordem 7 
6 Depósitos à ordem 7 
7 Depósitos à ordem 7 

现在,您可以排序SortColumn Nivel2。

编辑 - 在SortColumn的实施应在数据源

做似乎是在PowerBI的限制,它检查排序列的实现,而不是在排序列中的数据。因此,即使排序列中的数据完全有效,上述解决方案也不起作用。

This column can't be sorted by a column that is already sorted, directly or indirectly, by this column.

的SortColumn的实施应被移动到数据源来代替:当您尝试通过SortColumn排序[Nivel2]上述解决方案将抛出此错误。即如果您的数据源是Excel工作表,那么应该在Excel工作表内创建SortColumn。

上面的答案确实解释了问题和解决方法。唯一的变化是SortColumn必须在表格模型(PowerBI)之外实现,以确保PowerBI不知道SortColumn和[Nivel2]列之间的依赖关系。

+0

您何时/何处发生此错误? – dybzon

+0

对不起,公式工作正常,但我无法按计算列排序。我收到错误消息:“此列不能按已经,直接或间接地按此列排序的列进行排序”。 –

+0

啊哈。您的[ID]专栏是否基于(或排序)您的[Nivel2]专栏? – dybzon

相关问题