Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Week over Week change for the same document

Hello guys!

 

I have a table called "OPEN POs" that looks like this:

 

WeekNumSupplierPO numberPayment term
33A15830 days
33C10560 days
33Y46930 days
33A42290 days
33Y78975 days
33U156120 days
33Y11145 days
34A15860 days
34C10560 days
34T8890 days
34Z156120 days
34U777120 days
34B87945 days
34Y78945 days
34U156120 days

 

I'm trying to build a matrix like this:

 

Week 34PO numberSupplierFromTo
 158A30 days60 days
 789Y75 days45 days

 

The idea is to show the "PO numbers" that had its "Payment term" changed from one week to another.

The variation always needs to be from the current week (that will be selected on the slicer) versus the previous week.

 

Can you guys please help me on this one?

 

mahoneypat ideas? 😁 😬

 

Thank you for the support! 🙂

  • What should happen in week number 1 ?

     

    Anyway.  Add two calculated columns  (measures are not required here as there is no filter impact)

     

    Last Week = 
    var p='OPEN POs'[PO number]
    var s='OPEN POs'[Supplier]
    var w='OPEN POs'[WeekNum]
    return calculate(max('OPEN POs'[Payment term]),all('OPEN POs'),'OPEN POs'[PO number]=p,'OPEN POs'[Supplier]=s,'OPEN POs'[WeekNum]=w-1)
    
    Different = SWITCH(TRUE(),ISBLANK('OPEN POs'[Last Week]),"no",[Last Week]='OPEN POs'[Payment term],"no","yes")

     

    Then filter your table to Different="yes"

     

     

     

7 Replies

  • What should happen in week number 1 ?

     

    Anyway.  Add two calculated columns  (measures are not required here as there is no filter impact)

     

    Last Week = 
    var p='OPEN POs'[PO number]
    var s='OPEN POs'[Supplier]
    var w='OPEN POs'[WeekNum]
    return calculate(max('OPEN POs'[Payment term]),all('OPEN POs'),'OPEN POs'[PO number]=p,'OPEN POs'[Supplier]=s,'OPEN POs'[WeekNum]=w-1)
    
    Different = SWITCH(TRUE(),ISBLANK('OPEN POs'[Last Week]),"no",[Last Week]='OPEN POs'[Payment term],"no","yes")

     

    Then filter your table to Different="yes"

     

     

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Let me try this solution..

      btw, week number one can be null.. no reference to bring any variance. 

      • lbendlin's avatar
        lbendlin
        Super User

        that's not what I meant.  Is your report limited to a single year?  Or would you expect week 1 look back at week 52 of the prior year etc?

  • mahoneypat's avatar
    mahoneypat
    Microsoft Employee

    Please try these two expressions for From and To.  They seem to get your desired result.

     

    From = var prevweek = Max(Terms[WeekNum])-1
    return CALCULATE(MIN(Terms[Payment term]), Terms[WeekNum] = prevweek)
     
    To = var latestweek = Max(Terms[WeekNum])
    return CALCULATE(MIN(Terms[Payment term]), Terms[WeekNum] = latestweek)
     

    If this works for you, please mark it as the solution.  Kudos are appreciated too.  Please let me know if not.

    Regards,

    Pat