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

时间:2018-08-11 10:24:50

标签: powerbi powerbi-datasource powerbi-desktop

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

基本上,我将考虑以下三列:

enter image description here

问题: 我想根据条件“”从上表中删除重复的值 “时间”,“ ID”和“花费的时间”中的绝对差等于或小于1” 正如您在图像中看到的那样,突出显示的行属于此类别。

我希望根据条件删除下面的这些行。

enter image description here

问题:我想根据条件从上表中删除重复的值“ “时间”,“ ID”和“花费的时间”中的绝对差等于或小于1” 正如您在图像中看到的那样,突出显示的行属于此类别。

我希望根据条件删除下面的这些行。

enter image description here

通过使我们进入包含公式=IF(AND(A3=A2,B3=B2,ABS(F3-F2)<1),"problem",0)的第四列,然后过滤掉标记为probelm的行,我可以在excel中执行此操作。请帮忙!

致谢

Mahi

2 个答案:

答案 0 :(得分:1)

我敢打赌@Alexis Olson的建议效果很好,但是由于您特别提到了Query Editor,因此我将在此处进行操作:


  1. 按如下所示加载数据,然后接受在Changed Type下进行的更改:

enter image description here

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

  1. 选择Add Column并单击Index Column,这样您就可以做到:

enter image description here

  1. 选择Add Column,单击Custom Column,然后在显示的对话框Table.AddColumn(#"Added Index", "Custom", each #"Added Index"[Time Spent]{[Index]}-#"Added Index"[Time Spent]{[Index]-1})中插入这个小公式:

enter image description here

  1. 单击OK,并确保获得此提示:

enter image description here

  1. 我认为这一步有点奇怪,但是您必须在该列中单击“表”:

enter image description here

  1. 您将在第一行中看到一条错误消息,但是您可以通过右键单击该列,然后单击Remove Errors来删除该错误消息:

enter image description here

  1. 现在,您可以单击“自定义列”中的下拉菜单,选择“数字过滤器”,然后选择Does Not Equal

enter image description here

  1. 然后插入0,或从对话框的下拉菜单中选择0:

enter image description here

  1. 就这样,您所需的电话号码现在应被过滤掉:

enter image description here

但是请注意,此过程要付出一定的代价,因为由于索引的第一步而丢失了第一个值。如果您可以使用其余的内容,那么我可以看看是否也可以修复最后一部分。

答案 1 :(得分:0)

您可以通过在“重复”值列表中采用最大值或最小值来从每个唯一的行集中选择一个代表性的[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]列重命名为{{ 1}}。