Bonjour,
Tu m'excuseras de ne pas utiliser tes noms de plages mais dans la mesure où on allonge considérablement les formules avec, j'aime autant m'en passer...
Pour raccourcir encore un peu les formules :
- mettre en F3 : aucun modèle disponible
- mettre en F9 : aucune imprimante sélectionnée
Formule en C20 :
=INDEX(C3:F3;4-SOMMEPROD((C4:E4=C13)*(C5:E5=C14)*(C6:E6=C15)*(C7:E7=C16)*(C8:E8=C17)*{3.2.1}))
Une petite explication paraît utile : je ne reviens pas sur l'utilisation de SOMMEPROD dans ce cadre, si les 5 premières matrices répondent aux conditions, leur produit sera 1 et la valeur correspondante de la dernière matrice sera renvoyée, c'est du classique. Il aurait donc été logique de mettre comme dernière matrice {1.2.3} afin de définir l'index dans la plage C3:E3.
Seulement, dans le cas où aucune imprimante ne répond aux conditions la valeur renvoyée serait 0, et dans ce cas la fonction INDEX ne renvoie pas d'erreur (qu'on aurait pu inhiber) mais renvoie toute la plage, dont ne s'affiche que la première valeur, ce qui serait ici particulièrement gênant puisque modèle A serait systématiquement affiché en cas de non correspondance !
En inversant les valeurs de la dernière matrice, et en soustrayant la valeur renvoyée par SOMMEPROD de 4, on évite le 0 d'une part, remplacé par un 4, et on en tire profit d'autre part pour faire renvoyer l'absence d'imprimante en élargissant la plage d'application de la fonction INDEX.
Formule en C21 :
=SI(C20=F3;F9;SI(RECHERCHE(C20;C3:E3;C9:E9)<=C18;"Oui";"Non"))
Là pas de commentaire particulier.
Cordialement
Ferrand