| ||||||||
Astucien ![]() | Bonjour, Je n'arrive pas à trouver le moyen de faire un EQUIV à l'envers (ou inverser la colonne avec un DECALER pour faire un EQUIV à l'endroit) Dans cet exemple comment trouver la ligne 5 qui contient "Paul" sachant qu'il peut y avoir plusieurs "Paul" avant et que je ne veux pas créer une colonne de calcul intermédiaire contenant par exemple le prénom et le numéro de ligne genre =A1 & LIGNE(A1) Cordialement, Modifié par Debrief le 01/03/2018 10:05 | |||||||
Publicité | ||||||||
Petit astucien | Bonjour Debrief, Je comprends la question mais quel est le but de la manœuvre ? Et s'il y a trois Paul ... Donnes un peu plus d'explications. Il est possible, sans macro, en association avec Equiv() et Decaler() en cascade, de trouver tous les "Paul" mais dans le sens haut-bas.
| |||||||
Astucien ![]() | Bonjour bruber, C'est un affaire de compte bancaire et de date de valeur à créer. Je ne t'explique pas tout car ça serait trop long. Le fait est que, pour une opération donnée, je dois 'remonter' dans la colonne pour trouver la première ligne contenant "Relevé CB au*". Il me faut la 1ère occurrence au-dessus d'une ligne donnée. C'est l'équivalent des "Paul" dans l'exemple ci-dessus qui sont en nombre indéterminé au dessus de la ligne 6. Je ne peux pas faire un EQUIV normal car je ne connais pas la valeur complète du "Relevé CB au*". Sur une ligne donnée, je dois avoir une formule qui retourne le n° de ligne de la 1ère occurrence de "Paul" trouvée en remontant la colonne. Un EQUIV à l'envers en quelque sorte. | |||||||
Astucien ![]() | Je ne crois pas que ce soit possible, rien trouvé sur Internet. J'ai écrit un embryon de macro pour mon besoin ponctuel, mais les fonctions persos dans les formules sont appelées trop souvent par Excel et ralentissent certaines opérations. Public Function EQUIVINV(ByVal ValeurCherchée As Variant, ByRef Rng As Range) As Long Modifié par Debrief le 01/03/2018 20:16 | |||||||
Astucien ![]() | Bonjour,
formule matricielle
Cdlmnt | |||||||
Astucien ![]() | Bonjour Djidji du nord, {=PETITE.VALEUR(SI(A1:A6="paul";LIGNE(A1:A6));1) donne 2 C'est pas inintéressant mais je ne sais pas à priori quel est le n° d'occurrence de "Paul" que je cherche car ce n° part du haut et je cherche la 1ère occurrence en partant du bas. Cordialement, | |||||||
Astucien ![]() | Ceci dit, en transformant légèrement ta formule on peut obtenir le résultat souhaité: {=PETITE.VALEUR(SI(A1:A6="paul";-LIGNE(A1:A6));1)*-1} donne 5 Merci pour le tuyau. Bien trouvé ! Edit: ou encore tout simplement {=GRANDE.VALEUR(SI(A1:A6="paul";LIGNE(A1:A6));1)} donne 5 Les caractères wildcard ne fonctionnement pas dans la chaîne mais on peut si besoin jouer sur des fonctions de texte, par exemple {=GRANDE.VALEUR(SI(GAUCHE(A1:A6;3)="pau";LIGNE(A1:A6));1)} Modifié par Debrief le 01/03/2018 20:07 | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|