Fonction index equiv vs recherche V

Bonjour,

C'est la première fois que je poste sur le forum donc soyez indulgent. D'avance merci

Je vous explique mon problème j'ai des fichiers très conséquents avec des recherchev qui mettent trois plombes.

Je viens de découvrir index equiv mais galère à la mettre en œuvre et ne suis même pas sûr qu'elle convienne en fait.

En fait je travaille sur deux feuilles d'un même classeur avec une colonne qui ont des valeurs communes

Ce que je souhaite c'est que ma recherche retourne la valeur équivalente de ma feuille 2 colonne 2 soit retournée dans ma feuille 1 colonne 2 en faisant le lien entre les colonnes 1 de chaque feuille

Je sais c'est très mal expliqué

Je vais mettre un exemple très simple en copie et espère que vous pourrez m'aider

13forumexemple.xlsx (14.08 Ko)

Bonjour et sur le forum,

Gros utilisateur des fonctions recherchev et index(equiv()), je t'informe qu'en général on utilise plutôt index equiv quand on a des tableaux qui sortent un peu de l'ordinaire et qu'on a besoin de flexibilité, malheureusement cette formule n'est pas bien plus rapide que l'autre, je dirais même qu'en temps d'exécution elle serait plus longue

La raison: avec un recherchev, la formule tourne jusqu'à trouver la valeur et renvoie la colonne n de la ligne où la valeur est trouvée, avec un index(equiv()), la fonction equiv recherche la valeur et renvoie sa position, puis sa position est injectée dans la fonction index pour retourner la valeur, en soit elle n'est pas vraiment plus rapide que l'autre

Si tu as des temps de traitement assez longs à cause du nombre conséquent de lignes que tu as entre tes 2 feuilles, ce n'est pas index(equiv()) qui t'aidera

Je te retourne quand même ton exemple pour que tu puisses voir à quoi ressemble le résultat:

Les autres membres du forum vont sûrement m'arracher les doigts en lisant cette proposition mais: une solution par VBA te permettrait sûrement d'aller plus vite, la raison est simple, quand tu modifies une ou plusieurs valeurs dans Excel, toutes les formules se recalculent, ce qui prend un temps conséquent.

Par VBA, tu aurais la possibilité de ne modifier que les valeurs nécessaires, dans ta feuille 1: tu changes le code, ça recherche uniquement ce code pour la colonne d'à côté, tu changes la colonne 2 de ta feuille qui sert de référence? ça ne changera que les résultats des codes correspondants.

En clair, ça ne recalculerait que le strict minimum au lieu de tout recalculer à chaque fois, ok ça demande de faire du code par contre ce qui pourrait potentiellement demander de la maintenance au niveau du code, mais si tu dois souvent changer des choses dans ton fichier, tu seras content de ne pas avoir les temps de recherche qui te bloquent à chaque fois...

Merci pour ta réponse plus que rapide je vais en faire part à mes collègues et voir si cela fonctionne

Le cas échéant (les fichiers pesant plus de 170Mo chacun) on se penchera vers une solution en vba

Merci bien

Re,

très bien, si jamais tu as besoin d'une solution en VBA, on pourra t'aider également

Bonjour ,

Je me permets de revenir vers vous, en fait du coup nos données ne s'inscrivent pas dans des tableaux comme je le pensais en premier lieu du coup je suis encore une fois perdu dans cette satanée formule index equiv .

Pourriez-vous m'aider à la mettre en place sur un nouvel exemple simple et je la modifierai pour qu'elle convienne à mes besoins.

D'avance merci

8nouvelexemple.xlsx (12.77 Ko)

Bonjour,

comme demandé, voici un nouvel exemple:

18nouvelexemple.xlsx (12.80 Ko)

J'ai englobé le duo INDEX(EQUIV()) dans une fonction SIERRREUR pour renvoyer "" si la recherche ne trouve rien.

Merci t'es trop fort

Rechercher des sujets similaires à "fonction index equiv recherche"