Power BI标志重复项

时间:2018-11-07 15:38:14

标签: powerbi dax powerquery m

我们有一个问题,我们的源数据可能会产生意外的重复。我想创建一个流程,当表中存在重复项时提醒我们。

我使用了将ID添加到表中的方法,然后再次添加ID并对ID进行计数,然后过滤显示为count> 1的图像,这很好地标记了重复的记录。但是,我想设置警报,因此我想设置一个可以固定到仪表板并进行设置和警报的计算。努力建立正确的计算。

我的数据如下:

enter image description here

因此,我希望将ID 3视为重复。尝试过此操作,但错误显示为“ EARLIER / EARLIEST引用了不存在的较早的行上下文”。

Measure = IF(
          CALCULATE(
                 COUNTA(Table1[ID]),
                 FILTER(Table1, Table1[ID] = EARLIER(Table1[ID]))
           )>1, 
           0,
           1
     )

谢谢!

3 个答案:

答案 0 :(得分:1)

您的代码可以用作计算列,但是EARLIER在某种程度上不能完全一样,因为没有固有的行上下文。如果要采取措施,请尝试将EARLIER换成MAX或其他汇总函数。

Measure = IF(
          CALCULATE(
                 COUNTA(Table1[ID]),
                 FILTER(Table1, Table1[ID] = MAX(Table1[ID]))
           )>1, 
           0,
           1
     )

答案 1 :(得分:0)

这是PowerQuery(“ M”语言)解决方案。鉴于要检查的值不在名为“ IdList”的列表中,因此下面的代码仅返回具有重复值的新列表,名为“ DupList”。

let
    IdList = {3,4,3,6,7,3,8,9,4,10,11},
    DupList = List.Distinct(List.Difference(IdList,List.Distinct(IdList)))
in
    DupList

在示例中,DupList等于{3,4},这是唯一重复的值。现在,您可以根据需要使用此新列表。

您可能知道,但是在“ M”中,您可以创建一个仅引用表的列名的列表:new_list = table_name [column_name]

希望这会有所帮助

答案 2 :(得分:0)

以下是使用DAX的一些想法。您可以添加一个计算列,以标记重复项。像这样:

enter image description here

DuplicateFlag =
IF (
    COUNTROWS ( FILTER ( 'Table1', 'Table1'[ID] = EARLIER ( Table1[ID] ) ) )
        > 1,
    1,
    BLANK ()
)

然后,您可以使用以下度量来计算重复项的数量,并将其放入卡片显示中。
Number of Duplicates = CALCULATE(DISTINCTCOUNT('Table1'[Name]),'Table1'[DuplicateFlag] = 1)

和类似的措施可以在矩阵视觉中显示每个重复项的数量。
count per duplicate = SUM([DuplicateFlag]) enter image description here