Power BI按日期排列的上一个元素

时间:2018-12-28 12:35:44

标签: powerbi dax powerbi-desktop

目标结果:

enter image description here

我将公式用于新列:

previousTaskName = var previous = CALCULATE (
    FIRSTNONBLANK (Process[PYTASKNAME];"");
    FILTER ( 
      Process;
      Process[PXHISTORYFORREFERENCE] = EARLIER(Process[PXHISTORYFORREFERENCE])
        && Process[PXTIMECREATED] > EARLIER(Process[PXTIMECREATED])
    )
)
return
IF (ISBLANK(previous); BLANK(); previous)

实际结果:

enter image description here

有人可以告诉我我在哪里犯错吗?

1 个答案:

答案 0 :(得分:0)

该上下文中的EARLIER函数引用当前行中的值,因此您可能需要将>更改为<。

FIRSTNONBLANK函数还将使用字段排序顺序为您提供第一个值-在您的情况下可能是字母顺序的。因此,对于更复杂的测试用例,任何先前带有Agreement的行都将产生Agreement-这可能不是您想要的。

您可能想要创建另一个中间VAR来捕获先前行集中的MAX(Process [PXTIMECREATED]),然后编写另一个CALCULATE ... FILTER以从最近的先前行中返回PYTASKNAME。

如果您将EARLIER函数替换为更多VAR定义(例如,

VAR vPXHISTORYFORREFERENCE = [PXHISTORYFORREFERENCE]