Regrouper plusieurs tableaux en un seul

J'ai deux tableaux : le premier contient des références et des prix, le second (pas de la même taille ni dans le même ordre) contient des désignations et des références. Comment compléter le second tableau pour ajouter une colonne prix ?

Voici une autre utilisation de RechercheV ou de index/equiv.
Première chose : identifier la cle commune à tes deux tableaux. Par exemple une référence produit. Disons que tu as deux tableaux, l'un comportant des références et des prix (ref1 en colonne A, prix en colonne B) et ailleurs un deuxième tableau comportant des références dont au moins une partie est présente dans la liste ref1, sinon tu ne peux pas faire de rapprochement entre tes deux tableaux) et par exemple le nom du produit correspondant à cette référence. Disons que ref2 est dans la colonne E et désignation dans la colonne F. Si tu veux compléter ton deuxième tableau pour ajouter en colonne G les prix voici la marche à suivre :
Par insertion/nom/définir, nomme "ref1" les cellules A2:A5 et prix B2:B5 En G2 tu peux écrire l'une ou l'autre de ces formules puis la tirer vers le bas:
=rechercheV(E2;A2:B5;2;0)
que tu peux traduire pour t'en souvenir par :
recherchev (ce que je cherche; tableau de correspondance; colonne contenant la valeur à renvoyer; 0)
N'oublie pas : la colonne est indiquée par son N° d'ordre dans le tableau (ici 2) et non par le N° de la colonne sur la feuille excel. Conséquence, si par la suite la colonne prix est déplacée, la formule recherchev renverra un résultat FAUX (et sans prévenir...). Le 0 en fin de formule est indispensable si tes données ne sont pas triées !
Attention, cette formule impose un certain ordre à tes colonnes. Tu ne peux pas en particulier dans cette exemple mettre le tableau ref2/désignation/prix dans les colonnes A:C et aller chercher tes pris dans des colonnes qui seraient en E:F.
Le dernier argument de RECHERCHEV() est un booléen. Lorsque son évaluation donne 0 (ou FAUX), il fait une recherche exacte. C'est bien sur l'utilisation la plus courante et par défaut, il faut toujours préciser ce dernier argument, cela évite bien des désagréments ! Lorsque son évaluation <>0 (ou VRAI), il fait une recherche dichotomique en considérant un plage triée ascendante.

La seconde formule
=INDEX(prix;EQUIV(E2;ref1;0);) parait moins intuitive mais se révèle à l'usage bien plus souple.
à retenir : =index(champ contenant la valeur à renvoyer; equiv(valeur cherchée;tableau de recherche;0))
On peut l'utiliser en mettant en dur les références des plages ou de préférence car c'est plus lisible en faisant référence aux noms des plages. PAr ailleurs, si les plages sont nommées en utlisant la fonction decaler, elles deviennent dynamiques et s'ajustent automatiquement à leur contenu.
Pourquoi ceux qui ont l'habitude de faire des recherches dans des tableaux préfèrent en général cette combinaison ?
- Cette formule peut être placée n'importe où par rapport au tableau de recherche. Les colonnes ref et prix1 n'ont même pas besoin d'être contigües ou sur la même feuille (même si c'est en général le cas !)
-Le dernier argument de EQUIV() est un nombre. Si c'est 0, il fait une recherche exacte. S'il est positif, il fait une recherche dichotomique en considérant une plage triée ascendante. S'il est négatif, il fait une recherche dichotomique en considérant une plage triée descendante. Il y a donc un peu plus de possibilité avec EQUIV() qu'avec recherchev. Avec un dernier argument négatif, on obtient des résultats différents.
Malgré cette légère possibilité additionnelle, la principale raison d'utiliser INDEX(EQUIV()) au lieu de RECHERCHEV() a plutôt directement rapport avec l'idée qu'avec INDEX(EQUIV()), on associe explicitement dans sa formule notre structuration des données, au lieu de fournir un nombre de colonnes de décalage. Ce nombre pourrait être éventuellement mis-à-mal pour le déplacement d'une colonne dans ses données. AMA, il faut privilégier la stabilité des résultats (des formules) et se prémunir contre des formules qui, comme RECHERCHEV(), soudainement se mettent à fournir d'autres résultats simplement parce qu'on ajoute/détruit/déplace des colonnes (sans changer les données dépendantes).

Auteurs : ,

Mots clefs associés à cette page : , , ,