Fonction index & equiv

Bonjour,

je bloque sur la fonction INDEX et EQUIV.

En effet, je souhaite faire apparaitre un nom en fonction du nombre de buts inscrits mais je n'y arrive pas.

A chaque fois il m'indique la même valeur.

image image

Dans les colonnes D21 à D25 j'ai utilisé la fonction =GRANDE.VALEUR

Merci d'avance pour votre aide,

Chris

Bonjour,

Il vous manque quelque information dans votre INDEX+EQUIV.

Vous devriez regarder le lien ci-après : https://www.excel-pratique.com/fr/fonctions/index_equiv

Je ne doute pas qu'il doit manquer quelque chose.

Je me suis déjà servi du tuto proposé ci-dessous mais malheureusement je n'y arrive pas ou ne comprend pas

Si c'est possible d'avoir une copie du fichier pour faire quelque essaie.

Sinon essayer la formule : =INDEX(Tableau2[Clubs]:Equiv(D21;$O$4:$O$23;0)2)

Par contre sans essaie je ne suis vraiment pas sur de la formule

17ligue-1-uber-eats.zip (507.44 Ko)

Merci,

vous le trouverez ci-dessus

Bonjour,

Alors déjà, je suis scandalisé de ne pas voir le PSG en tête de votre classement !

Je n'ai pas testé votre fichier mais j'ai plusieurs remarques à faire :

- Il faut indiquer une colonne en second argument de EQUIV. On cherche la valeur d'une référence (D21 - 1er argument) dans une colonne suivant une méthode de recherche (3è argument)

=Equiv(D21;$O$4:$O$23;0)

- Lorsque la méthode de recherche est VRAI (ou 1), EQUIV renvoie la position de correspondance de la plus grande valeur inférieure ou égale à la valeur cherchée (pratique avec des chaines de caractères).

- Lorsque la méthode de recherche est -1, EQUIV renvoie la position de correspondance de la plus petite valeur inférieure ou égale à la valeur cherchée.

- La formule de jonyboy :

=INDEX(Tableau2[Clubs]:Equiv(D21;$O$4:$O$23;0))

permet de bien renvoyer le club quand la valeur en D21 est trouvée dans O4:O23. Mais à condition que cette valeur soit unique !!! ou la 1ère dans l'ordre de recherche...

La fonction EQUIV ne convient pas pour rechercher sur des plages avec plusieurs valeurs identiques.

Ils n'ont pas encore jouer un match !!! ça ne devrait plus tarder ^^

Merci pour ces explications très clairs ;)

Par rapport au faite que le résultats peut arriver qu'il ne soit pas unique, est-il possible d'ajouter une fonctionNB.SI?

Voici la formule elle fonctionne avec le fichier sur l'onglet J01

=INDEX(Tableau2[Clubs];EQUIV(D21;$O$4:$O$23;0);1)

Par contre comme la dit 3GB si plusieurs cellules ont la même valeurs ça ne renvoie que le premier trouver.

Et je ne connais pas encore assez les formules pour trouver la solution rapidement désolé

Oui en effet, il y aurait du NB.SI à rajouter ainsi que tout un tas de fonctions pour essayer de faire une formule de compétition qui n'en vaudrait pas la chandelle finalement.

Il y a peut-être d'autres solutions mais je vous propose en attendant une fonction personnalisée (via VBA), qui règlerait le problème temporairement.
Pour saisir le code suivant, il faut aller sur le volet développeur (s'il n'est pas activé, allez sur le volet Fichier > Options/Personnaliser le ruban/Cochez "Développeur") puis ouvrir l'éditeur Visual Basic, puis insérer un module via le menu contextuel "Insertion" et coller le code dedans :

Function EQUIV_MULT(Valeur_Cherchee, Plage As Range, Occurrence As Byte) As Integer

'PERMET D'OBTENIR LA POSITION D'UNE VALEUR DANS UN PLAGE À SA Nème OCCURRENCE 
Application.volatile

For i = 1 To Plage.Count ' boucle sur i de 1 à la taille de la plage
    If Plage.Cells(i).Value = Valeur_Cherchee Then 'si la valeur de la cellule à la ième position dans la plage = Valeur à chercher
        Cpt = Cpt + 1 'incrémentation (Cpt commence à 0)
        If Occurrence = Cpt Then 'si Cpt = Occurrence >>> CORRESPONDANCE
            EQUIV_MULT = i 'La fonction retourne la position
            Exit Function
        End If
    End If
Next i 'on passe au i suivant

End Function

Ensuite, vous saisissez la formule suivante en C21 :

=INDEX(Tableau2[Clubs]:EQUIV_MULT(D21;$O$4:$O$23;NB.SI($D$21:$D21;$D21)))

Puis vous faites glisser la formule aux autres cellules C22, ....

NB.SI($D$21:$D21;$D21) renvoie le nombre d'occurrence du score en D21:D...

EQUIV_MULT renvoie la position de notre score dans O4:O23 à l'occurrence qui a lieu.

INDEX renvoie la valeur du club à la position obtenue par EQUIV_MULT.

Cordialement,

Génial !!!!!!

Cela fonctionne parfaitement bien.

Merci beaucoup pour votre aide, je comprend mieux l'utilisation des formules ;)

Nickel !

Bonne courage pour la suite !

... Et allez Paris !

Bonjour,

Faut-il créer un module pour chaque feuille ou une seule fois est suffisant?

Bonjour kris,

Si le code est bien dans un module normal, il fonctionnera normalement dans tout le classeur.

Merci Beaucoup

Rechercher des sujets similaires à "fonction index equiv"