Forum Discussion

ZakyQadir's avatar
ZakyQadir
Frequent Visitor
2 years ago
Solved

Like for Like comparison

Hi,

I need your help on this issue, I need to find Like For Like (YoY comparison) between two full period. 

I have 3 table.
Sales Table
List Data Table
Calendar Table

I try to make comparison use sameperiodlast year but total are not equal with detail.
Like for like comparison only apply for full month, so if site open on 29/03/2023, it will start comparison on 01/04/2024 vs 01/04/2023.
Aplicable for every new site opened (Have several site) - Based on opening date


Current Measures i use i try to have another table for each stores and flag it with LFL but still no work.

_Sales TY LFL = CALCULATE(SUM(Sales[Sales]),FILTER(_StoreFlagLFL,_StoreFlagLFL[FlagLFL] = "LFL"))
_Sales LY LFL = CALCULATE([Total Sales]SAMEPERIODLASTYEAR(DateCalendar[Date]))

Thanks in advance for your help

 

Expected Result

SiteCodeDateTY Sales   LY Sales   % Growth   TY LFL Sales   LY LFL Sales   % LFL   
A00129/03/2024    20.00020.0000%   
A00130/03/202430.00030.0000%   
A00131/03/202415.00015.0000%   
A00101/04/202460.00040.00050%60.00040.00050%
A00102/04/202470.00050.00040%70.00050.00040%
A00103/04/202480.00060.00033%80.00060.00033%
  275.000215.00028%210.000150.00040%


List Data Table

SiteCode   OpenDate
A00129/03/2023
A00201/01/2022


Sales Table

SiteCode   DateSales
A00129/03/2023     20.000
A00130/03/202330.000
A00131/03/202315.000
A00101/04/202340.000
A00102/04/202350.000
A00103/04/202360.000
A00129/03/202420.000
A00130/03/202430.000
A00131/03/202415.000
A00101/04/202460.000
A00102/04/202470.000
A00103/04/202480.000
  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi,

    Thanks for the solution Dangar332  and Greg_Deckler  offered, and i want to offer some more infotmation for user to refer to.

    hello ZakyQadir , you can refer to the following sample.

    sample data is the same as you privded, i create a calendar table, and create relationship among tables.

    Create the following measures.

    Sales = SUM(Sales[Sales])
    StartofMonth =
    VAR a =
        MAX ( 'List Data'[OpenDate] )
    VAR b =
        EOMONTH ( a, -1 ) + 1
    VAR c =
        EOMONTH ( a, 0 ) + 1
    RETURN
        IF ( [Sales] <> BLANK (), IF ( b = a, b, c ) )
    
    TY LFL Sales =
    VAR a =
        EDATE ( [StartofMonth], 12 )
    VAR b =
        MAX ( 'Calendar'[Date] )
    RETURN
        IF (
            OR (
                YEAR ( b ) = YEAR ( [StartofMonth] )
                    && b >= [StartofMonth],
                YEAR ( b ) = YEAR ( a )
                    && b >= a
            ),
            [Sales]
        )
    
    LY LFL Sales = IF([TY LFL Sales]<>BLANK(),CALCULATE([Sales],SAMEPERIODLASTYEAR('Calendar'[Date])))
    % LFL = DIVIDE([TY LFL Sales]-[LY LFL Sales],[LY LFL Sales])

    Then put the measures to the visual.

    Best Regards!

    Yolo Zhu

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    Output

     

     

6 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion
    • ZakyQadir's avatar
      ZakyQadir
      Frequent Visitor

      Yes, but my knowledge not that good, i need your help about that, my measure wrong maybe there's another solution from the experts

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi,

        Thanks for the solution Dangar332  and Greg_Deckler  offered, and i want to offer some more infotmation for user to refer to.

        hello ZakyQadir , you can refer to the following sample.

        sample data is the same as you privded, i create a calendar table, and create relationship among tables.

        Create the following measures.

        Sales = SUM(Sales[Sales])
        StartofMonth =
        VAR a =
            MAX ( 'List Data'[OpenDate] )
        VAR b =
            EOMONTH ( a, -1 ) + 1
        VAR c =
            EOMONTH ( a, 0 ) + 1
        RETURN
            IF ( [Sales] <> BLANK (), IF ( b = a, b, c ) )
        
        TY LFL Sales =
        VAR a =
            EDATE ( [StartofMonth], 12 )
        VAR b =
            MAX ( 'Calendar'[Date] )
        RETURN
            IF (
                OR (
                    YEAR ( b ) = YEAR ( [StartofMonth] )
                        && b >= [StartofMonth],
                    YEAR ( b ) = YEAR ( a )
                        && b >= a
                ),
                [Sales]
            )
        
        LY LFL Sales = IF([TY LFL Sales]<>BLANK(),CALCULATE([Sales],SAMEPERIODLASTYEAR('Calendar'[Date])))
        % LFL = DIVIDE([TY LFL Sales]-[LY LFL Sales],[LY LFL Sales])

        Then put the measures to the visual.

        Best Regards!

        Yolo Zhu

        If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

        Output

         

         

  • Dangar332's avatar
    Dangar332
    Resident Rockstar

    Hi, ZakyQadir 

    I apologize, but I didn't understand your situation
    can you elaborate what kind of output you get from above measures and where you stuck in there ?

    • ZakyQadir's avatar
      ZakyQadir
      Frequent Visitor

      Hi, 

      I need result like expected result, currently im stuck like this. Last year sales calculated since opening date, bu i need full month as base so first few days not count as LFL basis.

      Current situation

      SiteCodeDateTY Sales   LY Sales   % Growth   TY LFL Sales  LY LFL Sales   % LFL
      A00129/03/2024   20.00020.0000% 20.000 
      A00130/03/202430.00030.0000% 30.000 
      A00131/03/202415.00015.0000% 15.000 
      A00101/04/202460.00040.00050%60.00040.00050%
      A00102/04/202470.00050.00040%70.00050.00040%
      A00103/04/202480.00060.00033%80.00060.00033%
        275.000215.00028%210.000215.000-2%