在查询编辑器 Power BI 中删除基于具有条件的多列的重复值

Remove duplicates values based on multiple column with a condition in query editor Power BI

我是 power bi 的新手,需要您的帮助来解决我面临的以下问题。

基本上我考虑了以下三列:

问题:我想根据条件删除上面table的重复值“ "Time" 、"ID" 的相等值和 "Time spent" 的绝对差小于或等于 1" 正如您在图像中看到的那样,突出显示的行属于此类。

我想根据条件删除以下行。

问题:我想根据条件删除上面 table 中的重复值“ "Time" 、"ID" 的相等值和 "Time spent" 的绝对差小于或等于 1" 正如您在图像中看到的那样,突出显示的行属于此类。

我想根据条件删除以下行。

我可以在 excel 中执行此操作,方法是使用公式 =IF(AND(A3=A2,B3=B2,ABS(F3-F2)<1),"problem",0) 创建第四列,然后过滤掉标记为 problem 的行。请帮忙!!

此致

鲯鳅鱼

您可以通过在 "duplicate" 值列表中取最大值或最小值,从每组唯一的行中选择一个具有代表性的 [Time Spent] 值。这是此类自定义列的公式,我将其称为 [Min Time]:

= List.Min(
      Table.SelectRows(#"Previous Step",
          (C) => (C[Time] = [Time] and
                  C[ID] = [ID] and
                  Number.Abs(C[Time Spent] - [Time Spent]) < 1)
      )[Time Spent])

拥有此自定义列后,您可以按 [Time][ID][Min Time] 分组以汇总重复项,然后将 [Min Time] 列重命名为[Time Spent].

我敢打赌@Alexis Olson 的建议很管用,但既然你特别提到了 Query Editor,我会这样做:


  1. 像下面这样加载你的数据,并接受在 Changed Type:
  2. 下所做的更改

不用担心 Query Settings 下的其他步骤。我们最终会解决这个问题。

  1. SelectAdd Column然后点击Index Column,这样你就得到了这个:

  1. SelectAdd Column,点击Custom Column,在出现的对话框中插入这个小公式Table.AddColumn(#"Added Index", "Custom", each #"Added Index"[Time Spent]{[Index]}-#"Added Index"[Time Spent]{[Index]-1})

  1. 单击 OK,并确保您收到以下内容:

  1. 我认为这一步有点奇怪,但您必须在列中单击 'Table':

  1. 您将在第一行收到一条错误消息,但您可以通过右键单击该列并单击 Remove Errors:
  2. 将其删除

  1. 现在您可以单击自定义列中的下拉菜单,select 数字过滤器和 Does Not Equal

  1. 并从对话框的下拉菜单中插入 0,或 select0:

  1. 就是这样,现在应该过滤掉您需要的号码:

但是请注意,此过程是有代价的,因为您在索引的第一步中丢失了第一个值。如果其余部分是您可以使用的,我可以看看我们是否也可以修复最后一小部分。