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.