Forum Discussion

Baye's avatar
Baye
Frequent Visitor
7 years ago
Solved

Double condition - Stock table

Hi! I've a problem in DAX I can't solve. Perhaps you could help me... In an stock movement table, I have the next columns: Date-time, Product id, Movement id, Order id and Stock. The final stock...
  • v-lili6-msft's avatar
    v-lili6-msft
    7 years ago

    hi, Baye 

    Just try this formula:

    Column 2 = 
    
    VAR MAXdt =
        CALCULATE (
            MAX ( Stock[Datetime] ),
            FILTER ( Stock, Stock[IdProduct] = EARLIER ( Stock[IdProduct] ) )
        )
    VAR MAXNumID =
        CALCULATE (
            MAX ( Stock[Number] ),
            FILTER ( Stock, Stock[IdProduct] = EARLIER ( Stock[IdProduct] ) && Stock[Datetime] = MAXdt )
        )
    RETURN
      CALCULATE (
            SUM ( Stock[Stock] ),
            FILTER ( Stock, Stock[Number] = MAXNumID && Stock[Datetime] = MAXdt )
        ) 
    
    

    or

    Column 3 = VAR MAXdt =
        CALCULATE (
            MAX ( Stock[Datetime] ),
            FILTER ( Stock, Stock[IdProduct] = EARLIER ( Stock[IdProduct] ) )
        )
    VAR MAXNumID =
        CALCULATE (
            MAX ( Stock[Number] ),
            FILTER ( Stock, Stock[IdProduct] = EARLIER ( Stock[IdProduct] ) && Stock[Datetime] = MAXdt )
        )
    RETURN
      IF (
            Stock[Datetime] = MAXdt
                && Stock[Number] = MAXNumID,
            CALCULATE ( SUM ( Stock[Stock] ) )
        )
    

    Result:

     

    Best Regards,
    Lin

  • v-lili6-msft's avatar
    v-lili6-msft
    7 years ago

    hi, Baye 

    Just try this measure

    Measure = VAR MAXdt =
        CALCULATE (
            MAX ( Stock[Datetime] ), ALLEXCEPT(Stock,Stock[IdProduct],'Calendar'[Month],'Calendar'[Month Number])) 
    VAR MAXNumID =
        CALCULATE (
            MAX ( Stock[Number] ),
            FILTER ( ALLEXCEPT(Stock,Stock[IdProduct]), Stock[Datetime] = MAXdt )
        )
    
    return
    CALCULATE (
            SUM ( Stock[Stock] ),
            FILTER ( Stock, Stock[Number] = MAXNumID && Stock[Datetime] = MAXdt )
        ) 
    

    Best Regards,

    Lin