Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.

Reply
Anonymous
Not applicable

Excel Formula to Dax

I have sample data in Excel  for few years .

 

year    value

 

2020      100

 

2021      120  

 

2022      150

 

 

Syntax:

((currentyear)/(previousyear))^(1-n))-1

 

Excel  used the below formula 

Excel formula : = ((F6/E6)^(1/1))-1

 

F6 - current year

e6 - previous  year

n-number of years 

 

n= Number of years . if we select 2020 and 2021 , N will be 1  year of aging.

 

How to convert this formula to power bi dax. looking for your support .

 

 

1 ACCEPTED SOLUTION
FreemanZ
Super User
Super User

hi @Anonymous 

seems you are calculating compound annual growth rate. 

i tried the following, for your reference. 

1) expand your dataset and transpose it to:

YearValue
201740
201850
201980
2020100
2021120
2022150

 

2) add a calculate table for the n parameter, like:

 

 

n = 
SELECTCOLUMNS(
    GENERATESERIES(1,5),
    "n", [Value]
)

 

 

 

 

3) plot a slicer with n[n] column and a table visual with year column and a measure like:

 

 

CAGA% = 
VAR _currentyear = MAX(data[Year])
VAR _n = SELECTEDVALUE(n[n])
VAR _firstyear = _currentyear-_n
VAR rate = 
    DIVIDE(
        SUM(data[value]),
        CALCULATE(
            SUM(data[value]),
            data[Year]=_currentyear-_n
        )
    )^(1/_n)
    -1
RETURN 
    IF(rate<>-1, rate, "")

 

 

 

it worked like:

FreemanZ_0-1682596450604.png

FreemanZ_3-1682596656568.png

 

verified the calculation with Excel formula:

FreemanZ_2-1682596601334.png

 

 

View solution in original post

10 REPLIES 10
Anonymous
Not applicable

@FreemanZ  how to modify above measure for quadrant  comparision for year on year 

hi @Anonymous 

not sure about what do you mean by quadrant comparison, could you please elaborate that?

Anonymous
Not applicable

@FreemanZ   how to  use  here Date Column instead of Year .. year  number format.when i change it to Date . value is blank 

Var _currentyear=MAX(data[year])

VAR _currentyear = MAX(data[Year])

 

 

could you post some sample data?

Anonymous
Not applicable

@FreemanZ  please find thje sample data . i have data range 2019  to 2025 ..

REGION            DATE                     YEARS            VALUE

 EAST               01-01-2019           2019                454

WEST               01-02-2019           2019                954

EAST                01-03-2019           2019                354

NORTH            01-04-2019           2019                554

SOUTH            01-05-2019           2019                654

WEST               01-06-2019           2019                454

WEST               01-07-2019           2019                454

EAST                01-08-2019           2019                354

NORTH            01-09-2019           2019                554

WEST               01-10-2019           2019                654

EAST                01-11-2019           2019                454

WEST               01-12-2019           2019                954

 EAST               01-01-2020           2020                454

WEST               01-02-2020          2020               954

EAST                01-03-2020           2020                354

NORTH            01-04-2020           2020                554

SOUTH            01-05-2020           2020                654

WEST               01-06-2020           2020               454

WEST               01-07-2020           2020                454

EAST                01-08-2020           2020                354

NORTH            01-09-2020           2020                554

WEST               01-10-2020           2020                654

EAST                01-11-2020           2020                454

WEST               01-12-2020           2020                954

Anonymous
Not applicable

@FreemanZ  How to get  compound growth rate month wise ..

hi @Anonymous 

the logic is the same, only changing the term from year to month, like:

CMGR = (Final Month Value / Initial Month Value) ^ (1 / # of Months) – 1

Anonymous
Not applicable

@FreemanZ  i am getting the below Error Screenshot 2023-04-27 180428.png

Anonymous
Not applicable

@FreemanZ  thank you so much ... its working 

FreemanZ
Super User
Super User

hi @Anonymous 

seems you are calculating compound annual growth rate. 

i tried the following, for your reference. 

1) expand your dataset and transpose it to:

YearValue
201740
201850
201980
2020100
2021120
2022150

 

2) add a calculate table for the n parameter, like:

 

 

n = 
SELECTCOLUMNS(
    GENERATESERIES(1,5),
    "n", [Value]
)

 

 

 

 

3) plot a slicer with n[n] column and a table visual with year column and a measure like:

 

 

CAGA% = 
VAR _currentyear = MAX(data[Year])
VAR _n = SELECTEDVALUE(n[n])
VAR _firstyear = _currentyear-_n
VAR rate = 
    DIVIDE(
        SUM(data[value]),
        CALCULATE(
            SUM(data[value]),
            data[Year]=_currentyear-_n
        )
    )^(1/_n)
    -1
RETURN 
    IF(rate<>-1, rate, "")

 

 

 

it worked like:

FreemanZ_0-1682596450604.png

FreemanZ_3-1682596656568.png

 

verified the calculation with Excel formula:

FreemanZ_2-1682596601334.png

 

 

Helpful resources

Announcements
PBIApril_Carousel

Power BI Monthly Update - April 2025

Check out the April 2025 Power BI update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

April2025 Carousel

Fabric Community Update - April 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors