I was bemused that my formula looked right but, instead of returning zero for the first ID, it returned a value. I investigated and realised that I had missed a parameter (FALSE) from the MATCH function.
some corrected examples
List IDs and values
Formula:
=LET(f,FILTER(B2:D7424,D2:D7424<>"Not correct value"),uc,UNIQUE(INDEX(f,0,1)),rv,INDEX(f,MATCH(uc,INDEX(f,,1),FALSE),3),TMS_DP,CHOOSE({1,2},uc,rv),TMS_DP)
List values
Formula:
=LET(f,FILTER(B2:D7424,D2:D7424<>"Not correct value"),uc,UNIQUE(INDEX(f,0,1)),S_DP,INDEX(f,MATCH(uc,INDEX(f,,1),FALSE),3),S_DP)
List values using OP's variables
Formula:
=LET(NOT_CORRECT,"Not correct value",
count_ROWS,ROWS('DP & PAC'!$B$2:$B$7424)+2,
table_RANGE_SUBMITTED_DP,D2:INDEX(D:D,count_ROWS),
f,FILTER(B2:INDEX(D:D,count_ROWS), table_RANGE_SUBMITTED_DP <> NOT_CORRECT), uc,UNIQUE(INDEX(f,0,1)), S_DP,INDEX(f,MATCH(uc,INDEX(f,,1),FALSE),3),
S_DP)
Column H Formula:
Formula:
=LET(NOT_CORRECT,"Not correct value",
count_ROWS,ROWS('DP & PAC'!$B$2:$B$7424)+2,
table_RANGE_YEAR,C2:INDEX(C:C,count_ROWS),
table_RANGE_SUBMITTED_DP,D2:INDEX(D:D,count_ROWS),
table_RANGE_INVESTMENT,F2:INDEX(F:F,count_ROWS),
table_RANGE_FUNDRAISING,E2:INDEX(E:E,count_ROWS),
table_RANGE_FundID,B2:INDEX(B:B,count_ROWS),
MIN_YEAR,MIN(table_RANGE_YEAR),
MAX_YEAR,MAX(table_RANGE_YEAR),
table_RANGE_OFFSET_INVESTMENT,OFFSET(table_RANGE_INVESTMENT,1,0),
table_RANGE_OFFSET_FUNDRAISING,OFFSET(table_RANGE_FUNDRAISING,1,0),
table_RANGE_INV_AMT_INV_PER_YEAR, IF( table_RANGE_YEAR = MIN_YEAR, table_RANGE_INVESTMENT, (table_RANGE_INVESTMENT - table_RANGE_OFFSET_INVESTMENT)),
table_RANGE_FR_AMT_RAISED_PER_YEAR, IF( table_RANGE_YEAR = MIN_YEAR, table_RANGE_FUNDRAISING, (table_RANGE_FUNDRAISING - table_RANGE_OFFSET_FUNDRAISING)),
f,FILTER(B2:INDEX(D:D, count_ROWS),table_RANGE_SUBMITTED_DP<>NOT_CORRECT),uc,UNIQUE(INDEX(f,0,1)),S_DP,INDEX(f,MATCH(uc,INDEX(f,,1),FALSE),3),
table_RANGE_FR_AMT_RAISED_PER_YEAR)
Bookmarks