Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Rechercher la valeur la plus à droite dans une plage en fonction d'un seuil

niiiiiiiiiico

XLDnaute Occasionnel
Bonjour

Je cherche à prendre la valeur la plus à droite dans ma ligne L13:AC13 mais en excluant les valeurs <=100

Cette formule permet de trouver la valeur la plus à droite mais sans le critère qui exclue les valeurs <=100
=RECHERCHEH(9^9;L13:AC13;1)

Comment faire un rechercheh avec un si du coup ?

Merci
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

VB:
=INDEX($C$2:$O$2;MAX(SI($C$2:$O$2>100;COLONNE($C$2:$O$2)-2)))

Le début de plage à contrôler débute à la colonne "C" donc la 3ème colonne, on soustrait deux (-2) pour donner une plage de 1 à x afin de donner le résultat exact avec la fonction index().

COLONNE($C$2:$O$2)
{3.4.5.6.7.8.9.10.11.12.13.14.15}

COLONNE($C$2:$O$2)-2
{1.2.3.4.5.6.7.8.9.10.11.12.13}

même chose avec grande.valeur

JHA
 
Dernière édition:

ALS35

XLDnaute Impliqué
Bonjour à tous,
@patricktoulon
Si tu souhaites te faire un catalogue de formules, quelques autres possibilités (hors gestion d'erreur) :

Pour s'affranchir de la position en colonne :
Code:
=INDEX(2:2;GRANDE.VALEUR(SI(C2:O2>100;COLONNE(C2:O2));1))

Pour s'affranchir de la position en colonne et de la validation matricielle :
Code:
=INDEX(2:2;AGREGAT(14;6;COLONNE(C2:O2)/(C2:O2>100);1))
qui permettra d'avoir également la première valeur (voire la nième) avec :
=INDEX(2:2;AGREGAT(15;6;COLONNE(C2:O2)/(C2:O2>100);1))

Pour ceux qui ont Excel 365, une formule simplissime :
Code:
=PRENDRE(FILTRE(C2:O2;C2:O2>100;"");;-1)
ou
=LET(p;C2:O2;PRENDRE(FILTRE(p;p>100;"");;-1))
et pour la première valeur :
=PRENDRE(FILTRE(C2:O2;C2:O2>100;"");;1)

voili voilou,
Cordialement
 

ALS35

XLDnaute Impliqué
Re,
Pas certain que tu aies tout pigé !
1)
=INDEX(A1:F1 ;
Si tu mets A1:F1 ça marche sans correction de colonne, si tu déplaces ta plage en B1:G1 par exemple il faut corriger le numéro de colonne de -1 comme ceci :
=INDEX(B1:G1;GRANDE.VALEUR((B1:G1>100)*COLONNE(B1:G1);1)-1)
Si tu mets toute la ligne 1, tu n'a pas à faire cette correction quelle que soit la position de ta chaine :
=INDEX(1:1;GRANDE.VALEUR((B1:G1>100)*COLONNE(B1:G1);1))
2)
La fonction AGREGAT
Le 14 pour GRANDE.VALEUR avec le 1 à la fin qui va avec ;1)) ,
le 6 pour ne pas tenir compte des erreurs générées dans la formule
la formule COLONNE(A1:F1)/(A1:F1>100), le (A1:F1>100) retourne Vrai ou Faux, converti en 1 ou 0 dans les calculs, si on divise le numéro de colonne par 1 on a donc le numéro de colonne, si on divise par 0 on a une erreur DIV/0 qui est ignorée vu qu'on a mis le paramètre précédent à 6, on obtient ainsi le plus grand numéro de colonne des cellules d ayant une valeur >100, et dont on récupère la valeur avec INDEX(1:1
Cordialement
 

patricktoulon

XLDnaute Barbatruc
a ben voilà
la c'est clair
je me posais la question du 6 l'aide n'est pas implémenté dans excel 2013 par contre le 14 j'ai la liste

ok pour index tu a raison

je comprends mieux maintenant car j'avais essayé chaque segment de la formule a part et le dv0 me rendait perplexe
je comprends mieux il est zappé par l'option 6

merci @ALS35
good job!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…