Not exactly sure what your logic is if it matches none of the conditions (assuming it's 36).
in O21: =IFERROR(CHOOSE(MATCH(C23,{20,40,"40H"},0),IF(AND(C23=20,L23<=7),6,12),IF(AND(C23=40,L23<=7),12,24),IF(AND(C23="40H",L23<=7),18,36)),36)
Edit:
If using Excel 2003 or earlier...
=IF(ISERROR(CHOOSE(MATCH(C21,{20,40,"40H"},0),IF(AND(C21=20,L21<=7),6,12),IF(AND(C21=40,L21<=7),12,24),IF(AND(C21="40H",L21<=7),18,36))),36,CHOOSE(MATCH(C21,{20,40,"40H"},0),IF(AND(C21=20,L21<=7),6,12),IF(AND(C21=40,L21<=7),12,24),IF(AND(C21="40H",L21<=7),18,36)))