Forum Discussion

manojk_pbi's avatar
manojk_pbi
Helper V
11 months ago
Solved

Need help in writing calculated column

Hello Friends

 

I have below data in the table. The requirement is to write a DAX or MQuery to populate calculated column to copy the previous months KPI next to the KPI column. I don't have much experince on DAX programming, so getting diffuclt to achieve this. I am not sure how to pick the previous month record and store. Below is the sample data Tabl1 and expected out put Tabl2 

Tabl1

MONTH_YEARFILTER_MONTH_YEAR_KEYPROJECT_NAMERELEASE_NAMEKPI
May-2511624|2025-05-0111624 0%
May-2511624|2025-05-0111624Release A99%
May-2511624|2025-05-0111624Release B71%
May-2511624|2025-05-0111624Release C83%
May-2511624|2025-05-0111624Release D59%
Jun-2511624|2025-06-0111624 0%
Jun-2511624|2025-06-0111624Release A89%
Jun-2511624|2025-06-0111624Release B65%
Jun-2511624|2025-06-0111624Release C85%
Jun-2511624|2025-06-0111624Release D60%
Jul-2511624|2025-07-0111624 0%
Jul-2511624|2025-07-0111624Release A78%
Jul-2511624|2025-07-0111624Release B71%
Jul-2511624|2025-07-0111624Release C65%
Jul-2511624|2025-07-0111624Release D59%
May-2511763|2025-05-0111763 47%
Jun-2511763|2025-06-0111763 79%
Jul-2511763|2025-07-0111763 79%

 

Tabl2

MONTH_YEARFILTER_MONTH_YEAR_KEYPROJECT_NAMERELEASE_NAMEKPIPrevKPI
May-2511624|2025-05-0111624 0% 
May-2511624|2025-05-0111624Release A99% 
May-2511624|2025-05-0111624Release B71% 
May-2511624|2025-05-0111624Release C83% 
May-2511624|2025-05-0111624Release D59% 
Jun-2511624|2025-06-0111624 0%0%
Jun-2511624|2025-06-0111624Release A89%99%
Jun-2511624|2025-06-0111624Release B65%71%
Jun-2511624|2025-06-0111624Release C85%83%
Jun-2511624|2025-06-0111624Release D60%59%
Jul-2511624|2025-07-0111624 0% 
Jul-2511624|2025-07-0111624Release A78%89%
Jul-2511624|2025-07-0111624Release B71%65%
Jul-2511624|2025-07-0111624Release C65%85%
Jul-2511624|2025-07-0111624Release D59%60%
May-2511763|2025-05-0111763 47% 
Jun-2511763|2025-06-0111763 79%47%
Jul-2511763|2025-07-0111763 79%79%
  • Hello manojk_pbi,
    Thank you for reaching out to the Microsoft Fabric Community Forum.

    I have reproduced your scenario in Power BI Desktop using the sample data you provided. I implemented a DAX calculated column (PrevKPI) to copy the previous month’s KPI value for the same PROJECT_NAME and RELEASE_NAME and the output matches your expected result (Tabl2).

     

    For your reference, I’ve attached a .pbix file containing the solution. You can download it, open it in Power BI Desktop, and review the table to see the PrevKPI column in action. The DAX code used is as follows:

    PrevKPI =
    
    VAR CurrentMonthYear = Tabl1[MONTH_YEAR]
    
    VAR CurrentProject = Tabl1[PROJECT_NAME]
    
    VAR CurrentRelease = Tabl1[RELEASE_NAME]
    
    VAR CurrentDate =
    
        DATEVALUE(RIGHT(Tabl1[FILTER_MONTH_YEAR_KEY], 10))
    
    VAR PrevMonthDate = EDATE(CurrentDate, -1)
    
    VAR PrevKPI =
    
        CALCULATE(
    
            MAX(Tabl1[KPI]),
    
            FILTER(
    
                Tabl1,
    
                Tabl1[PROJECT_NAME] = CurrentProject &&
    
                Tabl1[RELEASE_NAME] = CurrentRelease &&
    
                DATEVALUE(RIGHT(Tabl1[FILTER_MONTH_YEAR_KEY], 10)) = PrevMonthDate
    
            )
    
        )
    
    RETURN
    
        PrevKPI

    If you have any further questions, please don't hesitate to contact us through the community. We are happy to assist you.

    Best Regards,
    Ganesh singamshetty.

8 Replies

  • v-ssriganesh's avatar
    v-ssriganesh
    Community Support

    Hello manojk_pbi,
    Thank you for reaching out to the Microsoft Fabric Community Forum.

    I have reproduced your scenario in Power BI Desktop using the sample data you provided. I implemented a DAX calculated column (PrevKPI) to copy the previous month’s KPI value for the same PROJECT_NAME and RELEASE_NAME and the output matches your expected result (Tabl2).

     

    For your reference, I’ve attached a .pbix file containing the solution. You can download it, open it in Power BI Desktop, and review the table to see the PrevKPI column in action. The DAX code used is as follows:

    PrevKPI =
    
    VAR CurrentMonthYear = Tabl1[MONTH_YEAR]
    
    VAR CurrentProject = Tabl1[PROJECT_NAME]
    
    VAR CurrentRelease = Tabl1[RELEASE_NAME]
    
    VAR CurrentDate =
    
        DATEVALUE(RIGHT(Tabl1[FILTER_MONTH_YEAR_KEY], 10))
    
    VAR PrevMonthDate = EDATE(CurrentDate, -1)
    
    VAR PrevKPI =
    
        CALCULATE(
    
            MAX(Tabl1[KPI]),
    
            FILTER(
    
                Tabl1,
    
                Tabl1[PROJECT_NAME] = CurrentProject &&
    
                Tabl1[RELEASE_NAME] = CurrentRelease &&
    
                DATEVALUE(RIGHT(Tabl1[FILTER_MONTH_YEAR_KEY], 10)) = PrevMonthDate
    
            )
    
        )
    
    RETURN
    
        PrevKPI

    If you have any further questions, please don't hesitate to contact us through the community. We are happy to assist you.

    Best Regards,
    Ganesh singamshetty.

    • manojk_pbi's avatar
      manojk_pbi
      Helper V

      Hi v-ssriganesh , thanks for the solution. Great !.

      I will reachout to you in case of any further assistance required

    • manojk_pbi's avatar
      manojk_pbi
      Helper V

      v-ssriganesh , if i need to have difference of Current & Previous, how do we do it? Do i need to create one more column or can we directly do it in table chart ? 

      How would DAX looks like ?

      • v-ssriganesh's avatar
        v-ssriganesh
        Community Support

        Hello manojk_pbi,
        Thank you for your follow-up.

        To calculate the difference between current KPI and previous KPI (PrevKPI), you can use both new column and measure the column approach is recommended for storing the difference, while the measure suits dynamic visuals.

        • To Create a New Column:
        KPIDifference = Tabl1[KPI] - Tabl1[PrevKPI]
        • Use a Measure in a Table Chart:
        KPIDifference = CALCULATE(SUM(Tabl1[KPI]) - SUM(Tabl1[PrevKPI]), ALLEXCEPT(Tabl1, Tabl1[MONTH_YEAR], Tabl1[PROJECT_NAME], Tabl1[RELEASE_NAME]))

         

        Best Regards,
        Ganesh singamshetty.