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.
Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.
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.
Je préfère une vérité nuisible à une erreur utile : la vérité guérit le mal qu'elle a pu causer.
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
Didier Gonard
Dernier tutoriel : Le VBA qu'est ce que c'est ?
Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
Cours et tutoriels pour apprendre Excel
N'oubliez pas de mettre : ..quand c'est le cas !
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
r-kelleg,
Je complèterai prochainement le tutoriel en tenant compte de ton exemple qui accélère les temps de recherche.
Merci pour ta contribution.
"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...
---------------
merci pour ce tutoriel.
Merci beaucoup pour ce tutoriel très bien fait et en particulier pour l'astuce d'utiliser la fonction colonne() dans le N° index, ce qui fait gagner un précieux temps.
Bonjour,
grand merci, c'est ce qui nous manquait !!
Cordialement
_________________________________________
Science sans conscience n'est que ruine de l'Âme
"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
j'ai suivi avec intérêt ce tuto clair et précis;
Notamment l'utilisation de colonne() qui semble bien pratique mais...que je n'arrive pas à faire fonctionner si ma cellule contenant la formule rechercheV se trouve sur une autre feuille ou classeur que mon tableau de données. Sur la même feuille en rajoutant une colonne la formule "décale en conséquence", mais si je met la formule sur une autre feuille (ou classeur) cela ne prend pas en compte le "décalage". je fait donc une erreur mais ou?
(j'utilise Excel 2010)
merci de votre réponse (si possible).
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager