I would include Iferror(formula,0) to @Mayukh's solution to prevent #N/A if some resource don't have a given expence registered.
=IFERROR(INDEX($E$19:$E$34,MATCH(1,($C4=$C$19:$C$34)*(D$3=$D$19:$D$34),0)),0)
For educational purposes:
The reference error is due to the provided array ($E$19:$E$34) has one column and the result of MATCH(G$3,$D$19:$D$34,0) will rise above 1 when matching to travel expenses.
index(array, row_num, [column_num])