considering a raw data not limited to this range:
HTML:
genus Month conchio1 conchio2 conchio3 conchio4 conchio5 conchio6 conchio7
maxima Jan-12 12 13 14 23 34 34 23
margtfr Feb-12 11 11 11 12 14 14 12
fragls Mar-12 44 56 68 76 8 8 76
gigas Apr-12 -6 5 2 2 5 6 8
crocea Feb-12 7 9 5 8 9 2 3
(We do have more occurrence of Genus per month and level of conchio per reading.)
the output would look like:
HTML:
level genus Jan-12 Feb-12 Mar-12 Apr-12
conchio1 maxima 12
conchio1 margtfr 11
conchio1 fragls 44
conchio1 gigas -6
conchio1 crocea 7
conchio2 maxima 13
conchio2 margtfr 11
conchio2 fragls 56
conchio2 gigas 5
conchio2 crocea 9
This goes down to conchio7 returning the corresponding values from table 1 if conditions are met.
Presently using this:
=IFERROR(IF($A17="a",INDEX($C$2:$C$6,MATCH(1,IF(($B$2:$B$6=C$16),IF(($A$2:$A$6=$B17),1)),0)),
IF($A17="b",INDEX($D$2:$D$6,MATCH(1,IF(($B$2:$B$6=C$16),IF(($A$2:$A$6=$B17),1)),0)),
IF($A17="c",INDEX($E$2:$E$6,MATCH(1,IF(($B$2:$B$6=C$16),IF(($A$2:$A$6=$B17),1)),0)),
IF($A17="d",INDEX($F$2:$F$6,MATCH(1,IF(($B$2:$B$6=C$16),IF(($A$2:$A$6=$B17),1)),0)),
IF($A17="e",INDEX($G$2:$G$6,MATCH(1,IF(($B$2:$B$6=C$16),IF(($A$2:$A$6=$B17),1)),0)),
IF($A17="f",INDEX($H$2:$H$6,MATCH(1,IF(($B$2:$B$6=C$16),IF(($A$2:$A$6=$B17),1)),0)),
IF($A17="g",INDEX($I$2:$I$6,MATCH(1,IF(($B$2:$B$6=C$16),IF(($A$2:$A$6=$B17),1)),0))))))))),"")
This works but it is also absolutely cumbersome.