qbinez, проверяйте.
Формулы (неоптимизированные) в серых ячейках. Написал первое, что прилетело в голову. Основная в столбце P. Формула массива (ввод Ctrl+Shift+Enter) Код
=ЕСЛИОШИБКА(ИНДЕКС(D$5:F$48;НАИМЕНЬШИЙ(ЕСЛИ((ДВССЫЛ("$"&ГПР($K$2;ЕСЛИ({1:0};$D$1:$F$1;$G$1:$I$1);2;)&"$5"):ДВССЫЛ("$"&ГПР($K$2;ЕСЛИ({1:0};$D$1:$F$1;$G$1:$I$1);2;)&"$48")<>0);СТРОКА($A$5:$A$48)-4);СТРОКА(E1));ПОИСКПОЗ($K$2;$D$1:$F$1;));"")
Наверняка, еще предложат варианты короче и изящнее.
Добавлено
Довложил файл -2, в нём уже более-менее по-человечески (только коды ресурсов подтягиваются массивным ИНДЕКС()-ом, остальные параметры через ВПР() и обычный ИНДЕКС().