power BI通过比较两个表获取MIN和Max日期

时间:2019-07-08 10:53:09

标签: report powerbi dax powerquery powerbi-desktop

我有三个表,分别是Allitems,InItems和OutItems。主表是Allitems,它与其他两个具有IN_OUT_ID的表有关。 我已经能够根据每个

的ID计算出最小和最大日期

数据集

enter image description here

使用以下DAX公式的表

对于InItems表

Min_Start_Date = CALCULATE( MIN(InItems[InDate]), ALLEXCEPT( InItems, InItems[IN_ID] ))
Max_end_Date =  CALCULATE( MAX(InItems[InDate]), ALLEXCEPT( InItems, InItems[IN_ID] ))

用于OutItems表

Min_Start_Date = CALCULATE( MIN(OutItems[OutDate]), ALLEXCEPT( OutItems, OutItems[OUT_ID]))
Max_end_Date = CALCULATE( MAX(OutItems[OutDate]), ALLEXCEPT( OutItems, OutItems[OUT_ID] ))

我的关系改变了双向流动的方向

enter image description here

我试图通过比较OutItems和Allitems的最小和最大日期来提取最小和最大日期,并将其用作Allitems表中的一列。例如,以IN_ID 1,最小日期为08/01/2019。我还将以OUT_ID的最小日期为03/02/2019。然后我想要这两个日期之间的最小日期是08/01/2019。 任何人都可以帮助我实现这一目标

预期结果

enter image description here

我愿意回答任何问题

1 个答案:

答案 0 :(得分:2)

为此,您不需要使用关系来同时过滤这两种方式,也不需要这四个计算出的列。只需取最小值/最大值中的最小值/最大值:

Mindate =
MIN (
    CALCULATE ( MIN ( InItems[InDate] ) ),
    CALCULATE ( MIN ( OutItems[OutDate] ) )
)

Maxdate =
MAX (
    CALCULATE ( MAX ( InItems[InDate] ) ),
    CALCULATE ( MAX ( OutItems[OutDate] ) )
)

请注意,这里的CALCULATE执行上下文转换,当采用最小/最大值时,将行上下文(当前行中的IN_OUT_IDItem值)用作过滤器上下文在其他表格上。如果将其删除,则会获得所有ID值的最小值/最大值。