cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
di12
Frequent Visitor

Week over week comparison for matrix

This should be very easy, but I did not manage to get solution.

 

I have 3 columns of data: Name , Amount, Date

 

I would like to have a pivot at the end with week over week comparison, i.e. like in below matrix

------- week 21 | WoW | week 22 | WoW | week23

Jack       100         20%        120        -50%    60

John      10           20%         12        -50%    6

1 ACCEPTED SOLUTION
Jihwan_Kim
Super User
Super User

Hi,

I am not sure how your data model looks like, but please check the below picture and the attached pbix file.

I tried to create a sample pbix file.

I suggest having a dim-calendar table that contains week information, like the attached.

I hope this sample can help to get your own solution for your own data model.

 

Untitled.png

 

Amount total: = 
SUM( Data[Amount] )

 

current wk vs prior wk: = 
VAR _currentwkamount = [Amount total:]
VAR _currentwkenddate =
    MAX ( 'Calendar'[End of Week] )
VAR _priorwkenddate = _currentwkenddate - 7
VAR _priorwkamount =
    CALCULATE (
        [Amount total:],
        FILTER ( ALL ( 'Calendar' ), 'Calendar'[End of Week] = _priorwkenddate )
    )
RETURN
    IF (
        HASONEVALUE ( 'Calendar'[WK-Year] ),
        DIVIDE ( _currentwkamount - _priorwkamount, _priorwkamount )
    )

If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Go to My LinkedIn Page


View solution in original post

1 REPLY 1
Jihwan_Kim
Super User
Super User

Hi,

I am not sure how your data model looks like, but please check the below picture and the attached pbix file.

I tried to create a sample pbix file.

I suggest having a dim-calendar table that contains week information, like the attached.

I hope this sample can help to get your own solution for your own data model.

 

Untitled.png

 

Amount total: = 
SUM( Data[Amount] )

 

current wk vs prior wk: = 
VAR _currentwkamount = [Amount total:]
VAR _currentwkenddate =
    MAX ( 'Calendar'[End of Week] )
VAR _priorwkenddate = _currentwkenddate - 7
VAR _priorwkamount =
    CALCULATE (
        [Amount total:],
        FILTER ( ALL ( 'Calendar' ), 'Calendar'[End of Week] = _priorwkenddate )
    )
RETURN
    IF (
        HASONEVALUE ( 'Calendar'[WK-Year] ),
        DIVIDE ( _currentwkamount - _priorwkamount, _priorwkamount )
    )

If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Go to My LinkedIn Page


Helpful resources

Announcements
PBI Sept Update Carousel

Power BI September 2023 Update

Take a look at the September 2023 Power BI update to learn more.

Learn Live

Learn Live: Event Series

Join Microsoft Reactor and learn from developers.

Dashboard in a day with date

Exclusive opportunity for Women!

Join us for a free, hands-on Microsoft workshop led by women trainers for women where you will learn how to build a Dashboard in a Day!

MPPC 2023 PBI Carousel

Power Platform Conference-Power BI and Fabric Sessions

Join us Oct 1 - 6 in Las Vegas for the Microsoft Power Platform Conference.

Top Solution Authors