Forum Discussion
DAX Code Help
I have a sample data with Survey waves (from 5 different time periods 1 to 5).
Need help in creating the below 3 columns highlighted in green.
1. Latest Wave column: Need to create a new column in Power BI using DAX. This should be based on "Maximum" value from Survey_Wave column. If true 1 or else 0.
2. Previous Wave column: Need to create a new column in Power BI using DAX. This should be based on "Maximum" value -1 from Survey_Wave column. If true 1 or else 0.
3. Last 3 waves columns: Need to create a new column in Power BI using DAX. This should be based on "Top 3" value from Survey_Wave column. If true 1 or else 0.
It is important to note that the code should be dynamic as the Survey_Wave column over time will get more values (6, 7 .... etc going forward in time)
Desired Result as below:
Pbix file link - Download here
Hi,
Here is one way to do this:
Data:Dax:
Latest =var _max = MAX('Table (35)'[survey_wave]) returnIF('Table (35)'[survey_wave] = _max,1,0)
2. Latest =var _max = MAX('Table (35)'[survey_wave])-1 returnIF('Table (35)'[survey_wave] = _max,1,0)
top 3 =var _max = MAX('Table (35)'[survey_wave])-2 returnIF('Table (35)'[survey_wave] >= _max,1,0)
Test (added data):
End result:
I hope this post helps to solve your issue and if it does consider accepting it as a solution and giving the post a thumbs up!
My LinkedIn: https://www.linkedin.com/in/n%C3%A4ttiahov-00001/
2 Replies
- ValtteriNCommunity Champion
Hi,
Here is one way to do this:
Data:Dax:
Latest =var _max = MAX('Table (35)'[survey_wave]) returnIF('Table (35)'[survey_wave] = _max,1,0)
2. Latest =var _max = MAX('Table (35)'[survey_wave])-1 returnIF('Table (35)'[survey_wave] = _max,1,0)
top 3 =var _max = MAX('Table (35)'[survey_wave])-2 returnIF('Table (35)'[survey_wave] >= _max,1,0)
Test (added data):
End result:
I hope this post helps to solve your issue and if it does consider accepting it as a solution and giving the post a thumbs up!
My LinkedIn: https://www.linkedin.com/in/n%C3%A4ttiahov-00001/