Bonjour
Voici le lien vers mon nouveau tutoriel, sous forme de fiche de fonction:
La fonction RECHERCHEV()
Critiques, commentaires, proposition d'amélioration ou de compléments: Tout est bienvenu dans l'esprit de Developpez.com
Bonjour
Voici le lien vers mon nouveau tutoriel, sous forme de fiche de fonction:
La fonction RECHERCHEV()
Critiques, commentaires, proposition d'amélioration ou de compléments: Tout est bienvenu dans l'esprit de Developpez.com
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Bonjour,
Un grand merci pour ce tutoriel très bien conçu, tout commes les autres d'ailleurs.
Une petite question toute bête :
Ou trouver s'il vous plaît, la liste de tous les tutoriels ?
Ce serait, je pense bien commode et utile pour les néophytes dont je suis.
Très cordialement à vous.

Bonjour
Vous trouvez cette liste en haut de la page en cliquant sur le bouton "TUTORIELS EXCEL", ce qui vous amènera sur cette page : http://excel.developpez.com/cours/
@ Pierre : comme d'habitude un excellent tuto complet sur l'utilisation de cette fonction
Philippe
Je vous remercie tous deux et vous souhaite une excellente journée.
Bonjour,
Un beau focus sur une fonction qui suscite pas mal de questions sur le forum
ça se lit très facilement et les screenshots sont très parlants.
Donc bravo, on attend le N° 2
Didier





Bonjour a tous.
voilà une fonction que j'utilise très souvent et qui est décrite complètement et avec brio !
le seul commentaire que je peux faire est d'attirer l'attention du lecteur sur la gourmandise en temps calcul de cette formule.
J'ai vu une collègue utiliser =recherchev(a1;"2009!$a:$d";2;faux) réduisant la matrice de recherche à la simple référence des colonnes. A éviter à mon avis.
Il m'arrive aussi de devoir comparer et regrouper deux tables d'articles (environ 25000 enregistrements comme dans l'exemple plus bas) sur 5 ou 6 colonnes avec cette formule. J'ai largement le temps d'aller prendre un café![]()
je préfère alors utiliser une combinaison d'equiv() et d'indirect() qui me semble un poil plus rapide.
exemple:
dans le tableau 1, j'ai la liste des articles vendu en 2009 avec leur prix moyen, la quantité vendue et achetée ainsi que le bénéfice moyen réaliser (et encore une au deux colonne comme le fournisseur principal et le statut de l'article).
dans le tableau 2, j'ai la liste des articles de 2010 avec les même types de données et je veux y ajouter les données de 2009. Si la liste des articles était identique d'une année à l'autre, il n'y aurait pas de problème mais ce n'est évidement pas le cas.
1ere solution; avec recherchev() , j'ajoute 6 colonnes à ma seconde table et fais une recherchev() dans la table 2009
2eme solution: j'ajoute 7 colonnes à ma seconde table, la première contient des equiv() de l'article 2010 recherché dans la liste des articles 2009 (ce qui me donne peu ou prou, le numéro de ligne de l'article) et les 6 autres colonnes contiennent des indirect("2009!"&ligne&colonne)
encore bravo pour ce travail !
Salut r-kelleg,
Merci de ton appréciation.
Concernant la rapidité du calcul, il faut comparer ce qui comparable.
A mon avis, les algorithmes de RECHERCHEV() et de EQUIV() sont probablement très proches, voire semblables. Il ne devrait donc pas y avoir de gain significatif entre les deux fonctions. J'ai d'ailleurs testé les deux fonctions sur une colonne de 1048576 cellules en XL2007 et les temps de calcul sont similaires.
Le gain de temps que tu constates vient du fait que, avec RECHERCHEV(), tu utilises la fonction sur 25000 lignes * 6 colonnes, soit 150000 recherches...
Avec EQUIV(), qui renvoie la position d'une donnée, puis INDIRECT(), tu utilises 25000 recherches dont le résultat est stocké dans une colonne intermédiaire, puis des simples "pointeurs" dans un tableau bidimensionnel. C'est cette utilisation d'un tableau bidimensionnel avec INDIRECT() qui te fait gagner du temps. Sans colonne intermédiaire et en utilisant EQUIV() et INDIRECT() au sein d'une même formule sur 25000 lignes * 6 colonnes, tu pourras aussi te prendre un café.
Ceci dit, ta technique est intéressante de "payer" ce gain de temps par l'ajout d'une colonne de travail
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------





Plus rapide, mais pas forcément plus pratique, puisque tu utilises une donnée pour indiquer la colonne de INDIRECT.
Donc, tu peux utiliser INDIRECT(), pour autant que tes colonnes puissent être calculées, car si tu utilises une valeur absolue comme indice de colonne, tu devras créer autant de formules que de colonnes, à moins d'utiliser un EQUIV sur les intitulés de colonnes. Cela dit, cette méthode sera plus rapide que x recherchev(), je te le concède.
Merci en tout cas de ton apport technique
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Salut le forum
Merci Pierre Fauconnier pour ce tuto tres interessant en esperant qu'il y a aura d'autre car les formules incomprehensible dans excel ne monque pas
Cordialement![]()
Bonjour,
grand merci, c'est ce qui nous manquait!!
Cordialement
Salut ab340,
Pour que le numéro de colonne, renvoyé par la fonction COLONNE(), varie lors de l'insertion ou la suppression d'une colonne dans la table de données, il faut que COLONNE() pointe vers la colonne de la feuille qui contient la plage de données.
Donc, si tu as une plage de données dans une feuille Données (par exemple, Données!A1:D1000), et que, au départ d'une autre feuille, tu veux utiliser RechercheV pour extraire une donnée de la deuxième colonne de cette plage, tu devras utiliser quelque chose comme ça:
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part =RECHERCHEV(ValeurCherchée;Données!A2:D1000;COLONNE(données!B1);FAUX)
Note que l'utilisation de tables de données facilite la démarche...
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Vraiment merci de cette réponse ultra rapide.
Je croyais pourtant avoir "essayé" cette méthode mais j'ai du planter quelque part
Bonne journée et encore bravo pour les tutos.
Bonjour,
J’ai regardé avec attention et plaisir ce tuto. Vraiment bravo je ne connaissais pas l’astuce du « ~ » donc chapeau !
Ceci dit je me permets 2 petites remarques dans le III tu précises que la valeur proche doit être égale à Faux Point.
Ce qui n’est pas totalement vrai car on peut mettre 0
Et tu le sais parfaitement car dans le paragraphe III a 1 tous tes exemples sont avec 0
J’ai cherché si tu en parlais un peu plus loin et j’ai pas trouvé
Pour des débutants cela peut être un peu déroutant
Ma deuxième remarque concerne quand la valeur proche est omise ou =Vrai.
Je pense qu’un petit exemple illustrant l’importance du tri de la base de référence serait un plus.
Par exemple un tableau de remise en fonction d’un montant de facture
(C’est ce que je fais quand je forme).
Si tu acceptes mes remarques ton tuto sera vraiment parfait
Très amicalement
Salut Igloobel,
Tu as raison sur les deux points:
Le premier m'avait échappé, car j'ai plus vite tendance à mettre 0 que Faux, et je n'ai pas fait attention que dans le tuto j'avais mis les deux.
Le second point est très pertinent. J'y avais songé lors d'une formation, et je n'ai jamais remis le tuto sur le métier, mais je vais essayer de faire cela pour la mi-juin.
Merci pour ces conseils, cher "collègue"...![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Partager