Fonction INDEX - EQUIV : Chercher une valeur dans un tableau

Bonjour,

Je me tourne vers vous aujourd'hui car je bloque complètement sur une action que je souhaite faire sur l'un de mes fichiers Excel.

Je souhaite retranscrire dans le tableau du bas les valeurs liées à ma valeur du haut lorsque je sélectionne une voie (ici Voie 1).

J'ai essayé d'utiliser les fonctions INDEX et EQUIV pour les X mais je ne suis jamais tombé sur un résultat viable.

Pour expliquer plus en détail, je souhaite que dans le tableau, (là où il y a #N/A), lorsque je détecte que c'est la voie 1 et que c'est dans la ligne "Valeur haute", la valeur 7 soit renvoyée.

Voici la formule sur laquelle je bloque.

=INDEX(TABX;EQUIV((VOIES=B13)*(VAL_TYPE=C13);TABLEAU;0))

où :

TABX = toutes les valeurs sur colonne X

TABY = toutes les valeurs sur colonne Y

TABZ = toutes les valeurs sur colonne Z

VOIES = colonne voies 1, 2 et 3

VAL_TYPE = colonne Valeur haute / Valeur basse

image

(J'ai pensé à valider ma formule par contrôle shift + entrer vu que c'est des matrices mais j'ai n'y fait).

Je vous fournit mon fichier excel pour plus de facilité à comprendre.

Je vous remercie par avance.

13classeur-voies.xlsx (12.07 Ko)

Bonjour,

Clairement je te déconseille fortement les cellules fusionnées, ça risque d'être compliqué de renvoyer le bon numéro de ligne. Tu vas y passer beaucoup de temps et la formule risque de devenir complexe.

Un test en conservant ton tableau mais détournant la formule.

Bonne journée.

Dans l'absolu j'aurais voulu essayer de ne rien créer à côté dans l'idéal, mais je me rends bien compte que c'est compliqué ^^

Merci pour ta solution, elle palie à mon problème et suffira à combler mon besoin, je te remercie :)

Bonjour,

Pour le fun, sans rien créer de plus :

=DECALER($C$2;EQUIV($B$13;VOIES;0)+EQUIV($C13;$C$13:$C$14;0)-1;EQUIV(D$12;$D$2:$F$2;0))

Il faut juste défusionner B2 et C2 avant.

Edit : Bonus en utilisant tes zones nommées

=INDEX(INDIRECT("TAB"&D$12);EQUIV($B$13;VOIES;0)+EQUIV($C13;$C$13:$C$14;0)-1;1)

Et pour info, concernant les fusions :
Je te mets au défi de trouver une différence esthétiquement entre les 2 cellules...

essai

Bonjour,

Pour le principe.

Cdlt.

=INDEX(TABX;EQUIV($B$13;VOIES;0);1)
=INDEX(TABX;EQUIV($B$13;VOIES;0)+1;1)

Bonjour,

Pour le principe.

Cdlt.

=INDEX(TABX;EQUIV($B$13;VOIES;0);1)
=INDEX(TABX;EQUIV($B$13;VOIES;0)+1;1)

Hello Jean-Éric

Je serais curieux de voir ça fonctionner ^^

TABX, c'est juste la colonne D

TABY est la colonne E

TABZ est la colonne F.

Avec cette formule, on restera scotché en colonne D et on aura le même résultat dans toutes les colonnes.

Pour ce qui est de l'equiv +1, c'est effectivement plus simple, mais ça oblige à avoir 1 formule différente pour chaque ligne.

Re,

@JoyeuxNoel,

Tu recopies les formules et tu remplaces TABX par TABY, etc. !?

Les formules sont figées et alors ?

Cdlt.

Re,

Oui, c'est une possibilité.
M'enfin 6 formules différentes pour 6 cellules, on est loin des solutions super optimisées que tu nous sors avec PowerQuery

Merci à tous pour vos réponses.

Merci JoyeuxNoël ^^ C'est exactement ce que je cherchais ! Je n'avais pas pensé à la fonction indirect.

Par contre je comprends que la première fonction EQUIV va chercher la voie, et la seconde le type de valeur, mais je ne comprends pas comment tout ça fonctionne au final.

La fonction INDEX cherche à indiquer la valeur donnée par la fonction "indirect" mais par quel moyen je retombe sur la valeur du tableau ? Parce qu'il trouve le n° de ligne ?

Merci pour l'histoire des fusions de cellules non fusionnées, c'est super !

Quand c'est comme ça, n'hésite pas à te mettre sur la cellule puis, dans l'onglet formule, tu as le groupe "vérification des formules". Tu y trouves un petit fx entouré --> évaluer la formule.
Elle te permet de voir ce que fait chaque petite partie de ta fonction. Ils auraient pu mieux développer cette option, mais c'est déjà sympa en l'état actuel.

=INDEX(INDIRECT("TAB"&D$12);EQUIV($B$13;VOIES;0)+EQUIV($C13;$C$13:$C$14;0)-1;1)

Comme tu as nommé tes plages TABX, TABY, TABZ, et que tu retrouves les valeurs X, Y et Z en D12,E12 et F12 :

INDIRECT("TAB"&D$12)

permet de reconstruire artificiellement la zone nommé correspondant à la colonne dans laquelle on se trouve. Le D n'est pas figé donc en étendant vers la droite, ça deviendra E12, puis F12, etc. Donc ici, si on est dans la colonne D, ça va donner comme résultat : $D$3:$D$8.

ensuite, et bien equiv($B$13;VOIES;0) donne la position de ta cellule par rapport à tes voies. Le + equiv.... c'est un gadget pour générer soit 0, soit 1, et donc qu'il adapte la ligne du dessous automatiquement, pour que tu n'aies pas à taper la formule plusieurs fois.

bonjour

une petite contribution Tulipée

=SOMMEPROD(($C$3:$C$4=$C13)*($D$2:$F$2=D$12)*CHOISIR(EQUIV($B$13;VOIES;0);$D$3:$F$4;;$D$5:$F$6;;$D$7:$F$8))

cordialement

On est quand même d'accord que Microsoft n'aurait jamais dû inventer la fonction "fusionner les cellules" ? :)

Quel est l'intérêt, hormis esthétique d'une telle fonction ? Je ne connais peut être pas tout les méandres ..

Merci !

On est quand même d'accord que Microsoft n'aurait jamais dû inventer la fonction "fusionner les cellules" ? :)

Quel est l'intérêt, hormis esthétique d'une telle fonction ? Je ne connais peut être pas tout les méandres ..

Merci !

peut etre que parce que en VB on peut jouer du "merge"

et aussi pour compatibilité avec WORD..................................

Bonsoir
Et pourquoi ne pas utiliser en entre B et C une colonne masquée qui sur chaque ligne reprend le contenu de la colonne de gauche (et éventuellement concaténée avec celle de droite). Du coup on a "Voie 1 Valeur Haute" puis "Voie 1 Valeur Basse", etc.
Tu peux faire la recherche directement en recherchant ces valeurs dans les cellules masquées en zone de recherche.

Bonsoir,

C'est ce qu'a proposé Ergotamine dans sa solution.

C'est ce qui permet une structure de formule la plus simple ensuite.

Mais quand c'est simple, ce n'est pas drôle 😁

Bonsoir,

C'est ce qu'a proposé Ergotamine dans sa solution.

C'est ce qui permet une structure de formule la plus simple ensuite.

Mais quand c'est simple, ce n'est pas drôle 😁

bonjour

et ma proposition ,elle sent le paté ????

On attend un retour, on attend un retour ... :D

Bonjour,

Un pâté de tête de cochon ?

Cdlt.

On attend un retour, on attend un retour ... :D

j'espère que ce n'est pas un retour d'age

Rechercher des sujets similaires à "fonction index equiv chercher valeur tableau"