Hello @ysherriff,
Since you want the “Campaign ID” based on “Campaign Start Date” which is closest as well as prior to the “RFP Received Date” then in that case, are the Campaign ID’s showcased in the final output (screenshot attached by you in the previous post) section correct? Because Campaign ID’s on those dates should have been like this -
But in your case, you’re showcasing the “Campaign Start Date” as closest as well as prior to the “RFP Received Date” but “Campaign ID” is evaluated based on the very most recent date.
For example, for BC# 112961-01 with a RFP Received Date of “25th Feb, 2022”, the Campaign Start Date closest and prior to RFP Received Date is “1st Dec, 2021” and against that date the allotted Campaign ID is “EWCUIDA50”. And you’re suggesting that the Campaign ID should be “EWCUIDA07” but this ID is allotted against the Campaign Start Date - “1st Aug, 2022”.
I’m providing below all the three measures for the reference and based on your business scenario you can implement them as required.
1). Calculation of “Campaign Start Date” closest as well as prior to the "RFP Received Date" -
Campaign Start Date - Harsh =
VAR _Max_Campaign_Start_Date =
CALCULATE(
MAXX(
FILTER(
SUMMARIZE(
Campaigns ,
Campaigns[BC #] ,
Campaigns[RFP Received Date] ,
Campaigns[Campaign Start Date] ) ,
( DATE( YEAR( Campaigns[Campaign Start Date] ) , MONTH( Campaigns[Campaign Start Date] ) , DAY( Campaigns[Campaign Start Date] ) ) <=
DATE( YEAR( Campaigns[RFP Received Date] ) , MONTH( Campaigns[RFP Received Date] ) , DAY( Campaigns[RFP Received Date] ) ) ) &&
MONTH( Campaigns[Campaign Start Date] ) <> MONTH( Campaigns[RFP Received Date] ) ) ,
Campaigns[Campaign Start Date] ) ,
ALLEXCEPT( Campaigns , Campaigns[BC #] ) )
VAR _Results =
IF( ISINSCOPE( Campaigns[BC #] ) ,
IF( ISBLANK( _Max_Campaign_Start_Date ) ,
CALCULATE( MIN( Campaigns[Campaign Start Date] ) ,
ALLEXCEPT( Campaigns , Campaigns[BC #] ) ) ,
_Max_Campaign_Start_Date ) ,
BLANK() )
RETURN
_Results
2). Calculation of “Campaign ID” based on very latest or recent “Campaign Start Date” -
Most Recent Campaign ID - Harsh - 1 =
IF( ISINSCOPE( Campaigns[BC #] ) ,
CALCULATE(
LASTNONBLANKVALUE( 'Campaign Start Date - Excel File (Test)'[Campaign Start Date] , MAX( Campaigns[Campaign ID] ) ) ,
ALLEXCEPT( Campaigns , Campaigns[BC #] , Campaigns[RFP Received Date] ) ) ,
BLANK() )
3). Calculation of “Campaign ID” based on “Campaign Start Date” closest as well as prior to the "RFP Received Date" -
Most Recent Campaign ID - Harsh - 2 =
VAR _Max_Campaign_Start_Date =
CALCULATE(
MAXX(
FILTER(
SUMMARIZE(
Campaigns ,
Campaigns[BC #] ,
Campaigns[RFP Received Date] ,
Campaigns[Campaign Start Date] ) ,
( DATE( YEAR( Campaigns[Campaign Start Date] ) , MONTH( Campaigns[Campaign Start Date] ) , DAY( Campaigns[Campaign Start Date] ) ) <=
DATE( YEAR( Campaigns[RFP Received Date] ) , MONTH( Campaigns[RFP Received Date] ) , DAY( Campaigns[RFP Received Date] ) ) ) &&
MONTH( Campaigns[Campaign Start Date] ) <> MONTH( Campaigns[RFP Received Date] ) ) ,
Campaigns[Campaign Start Date] ) ,
ALLEXCEPT( Campaigns , Campaigns[BC #] ) )
VAR _Campaign_ID_of_Max_Campaign_Start_Date =
CALCULATE( MAX( Campaigns[Campaign ID] ) ,
FILTER( ALLEXCEPT( Campaigns , Campaigns[BC #] ) ,
Campaigns[Campaign Start Date] = _Max_Campaign_Start_Date ) )
VAR _If_Max_Campaign_Start_Date_Blank =
CALCULATE( MIN( Campaigns[Campaign Start Date] ) ,
ALLEXCEPT( Campaigns , Campaigns[BC #] ) )
VAR _Campaign_ID_If_Max_Campaign_Start_Date_Blank =
CALCULATE( MAX( Campaigns[Campaign ID] ) ,
FILTER( ALLEXCEPT( Campaigns , Campaigns[BC #] ) ,
Campaigns[Campaign Start Date] = _If_Max_Campaign_Start_Date_Blank ) )
VAR _Results =
IF( ISINSCOPE( Campaigns[BC #] ) ,
IF( ISBLANK( _Campaign_ID_of_Max_Campaign_Start_Date ) ,
_Campaign_ID_If_Max_Campaign_Start_Date_Blank ,
_Campaign_ID_of_Max_Campaign_Start_Date ) ,
BLANK() )
RETURN
_Results
I’m also attaching the working of the PBIX file for the reference purposes.
Hoping you find this useful and meets your requirements that you’ve been looking for.
Thanks and Warm Regards,
Harsh
WIP - EDNA - Harsh v2.pbix (23.0 MB)