时间:2017-08-16 17:33:06

标签: filter conditional-statements dax powerquery m

想象一下,我有以下数据集。

产品/ IsOpen / Date 1/0/21/05/2009 1/1/22/05/2009

如何过滤/删除先前的数据到第一个IsOpen = 1? 通过创建一个新表甚至在Powerquery中。 我只想要从第一个IsOpen = 1开始的数据。

谢谢!

1 个答案:

答案 0 :(得分:0)

从Power Query中的此表开始:

enter image description here

  1. 按“日期”列排序。 (单击“日期”列右上角的向下箭头按钮,然后选择“升序排序”。)该表基本上看起来相同,但日期将按顺序排列,向下箭头按钮将更改为:

    enter image description here

    enter image description here

  2. 添加索引。 (单击“添加列”选项卡,然后单击“索引列”。)

    enter image description here

  3. 按“IsOpen”分组并确定每个“IsOpen”值的最小索引值。 (单击“变换”选项卡,然后单击“分组依据”。然后填写弹出窗口,如下所示:

    enter image description here

    ...然后点击“确定”。)你会看到:

    enter image description here

  4. 过滤掉“IsOpen”中的0。 (单击“IsOpen”列右上角的向下箭头按钮,然后在列表中取消选择“0”。)

    enter image description here

    你会看到:

    enter image description here

  5. 删除在第一个1之前出现的“IsOpen”中带有0的行。(这是“技巧”,它可以做你想要的。我在Ken Puls的博客上找到了它, “The Ken Puls (Excelguru) Blog”:

    单击公式栏左侧的“Fx”并覆盖显示的内容:

    = Table.Skip(#"Added Index",#"Filtered Rows"[MinIndex]{0})
    

    enter image description here

    然后按回车键,你会看到:

    enter image description here

    注意在第一个1“IsOpen”之前出现的0“IsOpen”,它位于“Index”0,现在已经消失了。)