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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
amirghaderi
Helper IV
Helper IV

New Column based on criteria in two different rows for the same ID

Hi,

I want to add a new column for the below table and the value for the column to be based on the below criteria.

 

For Code A1, A2,A3,...

If in Criteria column MDR Planned Finish date < 28-Oct AND it has a criteria of MDR Forecast date and Forecast date > 28-Oct, the the NEW column value to be Overdue,

If in Criteria column MDR Planned Finish date > 28-Oct AND it has a criteria of MDR Forecast date and Forecast date > 28-Oct, the the NEW column value to be Not Overdue,

If in Criteria column is MDR Issued Date, then the ew column to be "issued.

 

CodeMDR DescriptionCriteriaDateStatusNew Column
A100A1MDR Planned Finish Date28-Oct-20Planned by cut off 
A100A1MDR Forecast Date05-Nov-20Not IssuedOverdue
A200B1MDR Planned Finish Date10-Nov-20Planned for Future 
A200B1MDR Forecast Date15-Nov-20Not IssuedNot Overdue
A300C1MDR Planned Finish Date10-Nov-20Planned for Future 
A300C1MDR issued Date27-Oct-20IssuedIssued
1 ACCEPTED SOLUTION

@amirghaderi 

you can try this. The DAX is a little bit long. Hope the logic is correct for your real data.

Column = if(ISBLANK(maxx(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR issued Date"),'Table'[Criteria])),if(MAXX(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Planned Finish Date"),'Table'[Date])<=DATE(2020,10,28)&&MAXX(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Forecast Date"),'Table'[Date])>date(2020,10,28),"Overdue",if(MAXX(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Planned Finish Date"),'Table'[Date])>DATE(2020,10,28)&&MAXX(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Forecast Date"),'Table'[Date])>date(2020,10,28),"Not Overdue")),"issued")

1.PNG





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

5 REPLIES 5
ryan_mayu
Super User
Super User

@amirghaderi 

you can try this to create a column.

please note i slightly changed your creteria.

If in Criteria column MDR Planned Finish date < =28-Oct AND, otherwise A1 will be blank instead of "overdue".

Column = if('Table'[Criteria]="MDR Forecast Date"&& 'Table'[Date]>date(2020,10,28)&&maxx(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Planned Finish Date"),'Table'[Date])<=date(2020,10,28),"Overdue",if('Table'[Criteria]="MDR Forecast Date"&& 'Table'[Date]>date(2020,10,28)&&maxx(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Planned Finish Date"),'Table'[Date])>date(2020,10,28),"NotOverdue",if('Table'[Criteria]="MDR issued Date","Issued")))

1.PNG

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Hi Ryan,

Getting very close now. Thanks for the reply.

Now how can I get Overdue, not overdue, issued values repeated for each record of A1, B1 C,... and not having blank lines on the new column.

 

Thanks,

 

Amir

 

@amirghaderi 

you can try this. The DAX is a little bit long. Hope the logic is correct for your real data.

Column = if(ISBLANK(maxx(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR issued Date"),'Table'[Criteria])),if(MAXX(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Planned Finish Date"),'Table'[Date])<=DATE(2020,10,28)&&MAXX(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Forecast Date"),'Table'[Date])>date(2020,10,28),"Overdue",if(MAXX(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Planned Finish Date"),'Table'[Date])>DATE(2020,10,28)&&MAXX(FILTER('Table','Table'[MDR Description]=EARLIER('Table'[MDR Description])&&'Table'[Criteria]="MDR Forecast Date"),'Table'[Date])>date(2020,10,28),"Not Overdue")),"issued")

1.PNG





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Thanks for your help, It worked as expected.

amitchandak
Super User
Super User

@amirghaderi , Trya new column like

New column =
var _Planned = maxx(filter(Table, [Code] =earlier([Code]) && [Criteria] = "MDR Planned Finish Date"),[Date])
var _Forecast = maxx(filter(Table, [Code] =earlier([Code]) && [Criteria] = "MDR Forecast Date"),[Date])
var _issued = maxx(filter(Table, [Code] =earlier([Code]) && [Criteria] = "MDR issued Date"),[Date])
return
if(Status in {" Not Issued","Issued" },
Switch( True(),
_Planned< today() && _Forecast>today() , "Overdue",
_Planned> today() && _Forecast>today() , "Not Overdue",
not(isblank(_issued )) , "Issued"
)
, blank())

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors