我们有一个问题,我们的源数据可能会产生意外的重复。我想创建一个流程,当表中存在重复项时提醒我们。
我使用了将ID添加到表中的方法,然后再次添加ID并对ID进行计数,然后过滤显示为count> 1的图像,这很好地标记了重复的记录。但是,我想设置警报,因此我想设置一个可以固定到仪表板并进行设置和警报的计算。努力建立正确的计算。
我的数据如下:
因此,我希望将ID 3视为重复。尝试过此操作,但错误显示为“ EARLIER / EARLIEST引用了不存在的较早的行上下文”。
Measure = IF(
CALCULATE(
COUNTA(Table1[ID]),
FILTER(Table1, Table1[ID] = EARLIER(Table1[ID]))
)>1,
0,
1
)
谢谢!
答案 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的一些想法。您可以添加一个计算列,以标记重复项。像这样:
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])