Comment utiliser vlookup pour rechercher des mots dans Excel?

1

Voici une maquette de mes données:

screenshot

La colonne I contient les catégories d'aliments et la colonne H les codes correspondants.

La colonne E contient des sous-catégories, ce avec quoi je dois travailler. Il contient le nom de la catégorie et un numéro séquentiel distinguant la sous-catégorie.

Dans les colonnes F et G, il me faut trouver le code et le nom de la catégorie parente à partir des colonnes H et I. L'image montre la colonne G déjà remplie.

Les données réelles comprennent 348 catégories et 1000 sous-catégories.

J'ai essayé d'utiliser Vlookup, ce qui me donne # N / A, une erreur valeur non disponible. Par exemple, j'ai essayé ceci pour la valeur de la colonne G:

=VLOOKUP(E4,H4:I6,2,FALSE)  

Comment rechercher les valeurs des colonnes F et G pour chaque valeur de la colonne E?

Sophie
la source
J'ai ajouté des données factices, merci pour la suggestion.
Sophie
Merci, cela fonctionne parfaitement. Mais je ne suis pas sûr de savoir comment ajouter le code de catégorie correspondant dans la colonne adjacente?
Sophie
Ça marche! Pourriez-vous s'il vous plaît expliquer ce que font les fonctions gauche et droite?
Sophie
De plus, existe-t-il une autre méthode pour les codes des données non triées?
Sophie
Oui, les données ont été constituées. Oui, c'est justement ça. Toutefois, dans les données d'origine (et non les données composées), il n'y a pas de lien évident entre le nom du code de catégorie et le code de sous-catégorie ou le nom de la catégorie.
Sophie

Réponses:

1

Vous devez remplir deux colonnes. Commençons par le nom de la catégorie dans la colonne G. Essayer de le faire avec VLOOKUP serait compliqué, car les valeurs de la colonne E ne correspondent pas à celles de la colonne I. Toutefois, vous avez de la chance car de votre convention de nommage. Les noms de sous-catégorie de la colonne E contiennent le nom de la catégorie en première partie et le numéro de séquence est toujours composé de trois chiffres. Nous pouvons utiliser cela pour extraire directement le nom de la catégorie.

Excel dispose de fonctions de chaîne pour effectuer ce type de manipulation des chaînes de caractères. LEFT (chaîne, nombre) vous donnera cela nombre des caractères les plus à gauche dans chaîne . De même, RIGHT (chaîne, nombre) vous donnerait cela nombre des personnages les plus à droite. Donc, si vous voulez extraire le numéro de séquence de sous-catégorie pour E4, ce sera: RIGHT (E4,3).

Une autre fonction de chaîne est LEN, qui vous donne la longueur (nombre de caractères) d'une chaîne. Pour extraire le nom de la catégorie pour G4, qui comprend tous les caractères sauf les quatre derniers (c.-à-d. Espace plus numéro de séquence), vous pouvez utiliser:

=LEFT(E4,LEN(E4)-4)

Vous avez maintenant le nom de la catégorie et vous pouvez l'utiliser pour rechercher le code de catégorie associé. Malheureusement, VLOOKUP a une limitation selon laquelle la comparaison est toujours effectuée dans la colonne la plus à gauche de la plage de recherche. Votre table est configurée avec le code dans la colonne la plus à gauche. Au lieu de cela, nous pouvons utiliser une combinaison de INDEX et MATCH. MATCH localisera une valeur correspondante et INDEX sélectionnera la valeur associée dans une colonne différente. En F4, on peut utiliser:

=INDEX(H4:H6,MATCH(G4,I4:I6,0))

INDEX renvoie la valeur de la plage H4: H6 pour la ligne dans cette plage donnée par la fonction MATCH. MATCH identifie la ligne dans I4: I6 où la valeur correspond exactement à la valeur dans G4 (le 0 à la fin désigne une correspondance exacte, donc la séquence des données n'est pas importante). Dans cet exemple, Fruit correspond à la première ligne de la plage. INDEX renvoie donc X040001 de la première rangée de sa gamme.

fixer1234
la source