Voici https://docs.google.com/spreadsheets/d/1otglASoQ1awsQXp4wj0QzUFu2qQay3vpk_G6oiG1Skg/copy
=iferror(query(arrayformula(to_text(split(flatten(query({$A$2:$C\($D$1:$H$1&"|"&$D$2:$H)};"select * where Col1='"&J2&"' and Col2=DATE'"&TEXT(K2;"yyyy-MM-dd")&"' ";0));"|")));"select Col1 where Col2='"&L2&"' limit 1 ";0)*1)
Pourquoi c'est si complexe ? car il faut associer pour chaque valeur l'en-tête de la colonne
$D$1:$H$1&"|"&$D$2:$H
adjoindre les 3 premières colonnes
{$A$2:$C\($D$1:$H$1&"|"&$D$2:$H)}
faire une première sélection sur le code et la date
query({$A$2:$C\($D$1:$H$1&"|"&$D$2:$H)};"select * where Col1='"&J2&"' and Col2=DATE'"&TEXT(K2;"yyyy-MM-dd")&"' ";0)
rendre le tout linéaire en 2 colonnes par
split(flatten(___________);"|")
et enfin ne retenir que la valeur pour laquelle la seconde colonne ainsi obtenue est égale au 3ème critère !
je ne tiens compte que du premier résultat trouvé (je suppose qu'il ne peut pas y en avoir plusieurs, sinon je corrige)