Here's a formula that should work for you:
=IFERROR(VLOOKUP(C2,Sheet2!$G:$Z,INDEX({14,16},MATCH(D2,{"Red","Orange"},0)),FALSE),"")
14 is the number of columns from G to T (including both G and T), and 16 is the number of columns from G to V (including both G and V). Your sample data wasn't clear what dates were in what columns, so that was my guess.
The formula would go in Sheet1, column P. I assumed row 1 is a header row so actual data starts on row 2. So with that, the formula would go in cell P2 and get copied down.
Put the column numbers in the same order as the corresponding condition as shown. You can add more by separating the values within the {} with a comma as shown.
Alternately, instead of the index/match, you could create a separate table containing the conditions and the column numbers and then use a nested vlookup, which would look something like this:
=IFERROR(VLOOKUP(C2,Sheet2!$G:$Z,VLOOKUP(D2,Sheet3!$A:$B,2,FALSE),FALSE),"")