Microsoft Excel 2007 – Liste déroulante qui saisit plusieurs colonnes d'une autre feuille

J'ai voyagé sur internet pour ça, mais je ne trouve pas une solution.

Disons que j'ai 2 feuilles – "Objets" et "Inventaire".

À l'intérieur des "Objets", j'ai 3 colonnes:

  • Nom de l'article
  • Type d'élément
  • Coût de l'article

À l'intérieur de "Inventaire", j'ai la même colonne que ci-dessus. Cependant, sous Nom de l'élément dans la feuille "Inventaire", j'ai une liste déroulante qui répertorie tous les éléments trouvés sous Nom de l'élément dans "Objets".

Ce que je veux arriver, c'est que dans «Inventaire», si je sélectionne un élément dans la liste déroulante … Je souhaite non seulement que le nom de l'élément soit affiché … mais le type d'élément et le coût de l'article dans «Inventaire» devraient Être peuplé aussi bien que toutes les données sont dans "Objets" pour l'élément correspondant que je viens de choisir.

Est-ce possible?

  • Oui, en utilisant VLOOKUP. Explication prise ici , avec la permission de bigmyk2k pour répondre à une question similaire.

Le travail ici n'est pas fait dans le menu déroulant (ce qui est facile à faire), le travail se fait dans chaque colonne que vous souhaitez remplir.

Pour chaque cellule, écrivez un VLOOKUP qui trouve la valeur souhaitée dans une table, en fonction de la valeur dans la cellule déroulante. Dans l'exemple ci-dessus, vous souhaitez nommer les gammes de données parentales (les informations sur une feuille de calcul distincte que vous remplissez) ou ajuster si nécessaire. Pour cet exemple, supposons que nous avons nommé les données parent: Parent_Data

A1 B1 C1 D1 Nom complet ID Addr1 Addr2

Par exemple, dans l'exemple ci-dessus, si votre liste déroulante pour FULLNAME est dans la cellule A1 et que vous créez le VLOOKUP pour Addr Line 2,

= VLOOKUP (A1, Parent_Data, 4, True)

Cela trouverait la correspondance exacte pour votre nom complet, passez à la troisième colonne à droite et renvoie cette valeur.

Pour le garder propre, vous voudrez intégrer le vlookup dans une déclaration IF, de sorte que s'il n'y a pas de résultat, cela ne montre rien. Cela ressemblerait à ceci:

= IF (ISNA (VLOOKUP (A1, Parent_Data, 4, True)), "", VLOOKUP (A1, Parent_Data, 4, True))

Autres instructions de clarification:

Pour cette explication, je dois commencer par le fait que Excel fonctionne soit vers le bas, soit vers le bas, ou vers le haut et vers le bas. Dans ce cas, nous sommes dans le domaine "Bas et droit".

Pour que la fonction fonctionne, la valeur que vous recherchez (nom complet dans A1) doit également être dans la colonne la plus à gauche des données parentales que vous recherchez. C'est parce que Excel va faire une recherche en bas de la première colonne jusqu'à ce qu'elle trouve cette valeur, puis tout droit sur la ligne jusqu'à ce qu'il corresponde à la colonne que vous spécifiez.

En supposant que Fullname est dans la colonne A, Excel renvoie la valeur dans la colonne D parce que nous lui avons dit de regarder dans la quatrième colonne de la ligne dans laquelle nous trouvons la valeur correspondante. C'est le "4" dans la formule. Pour la cellule que vous souhaitez renvoyer AddressLine1, vous entrez exactement la même formule, mais avec un 3, au lieu d'un 4.

"False" indique la fonction VLOOKUP pour renvoyer une valeur pour la requête uniquement si elle trouve une correspondance exacte. "Vrai" renverra les résultats pour la première correspondance. Pour être totalement honnête, je n'ai pas compris ce que Excel pense être proche d'une chaîne de texte …

  • Voici un didacticiel vidéo VLOOKUP sur YouTube pour des instructions supplémentaires.