Question Comment puis-je combiner VLOOKUP dans une instruction IF où l'index de colonne de la fonction VLOOKUP est un nombre extrapolé à partir d'un texte?


J'ai les tableaux suivants dans Excel; Product Stock 

et Stock Analysis.

La table de stock du produit (TVP) est plus vaste que cela, mais pour les besoins de cette question, je l'ai coupé.

Je souhaite rechercher la valeur dans une colonne du tableau Analyse des stocks (SAM) correspond à la valeur de la colonne Taille de la table Stock du produit.

Par exemple, dans ce cas, la valeur de la colonne Taille de la table Stock de produits (TVP) est 8 donc je veux rechercher la valeur dans le Taille 8 colonne de mon tableau d'analyse des stocks. Si ma valeur était 5 puis chercher Taille 5 dans mon tableau d'analyse de stock (SAM).

Notez que la validation des données a été effectuée pour garantir que les valeurs de la colonne Taille de la table Stock du produit sont basées sur la dimension spécifiée. Par conséquent, seules les tailles correspondant aux colonnes du tableau Analyse des stocks seront disponibles.

Aussi la formule a été insérée pour assurer que la prochaine rangée du SAM aura toujours un numéro de lot qui est un de plus que la ligne précédente (c’est-à-dire qu’il ya une augmentation de 1 sur la colonne Lot n ° pour chaque nouvelle ligne), ceci afin de ne pas répéter les lots dans la colonne SAM


4
2018-05-02 09:43


origine


Je ne suis pas sûr de comprendre complètement. Vous n'avez pas étiqueté vos tables, je suppose que la première est votre TVP et la seconde est votre SAT? Aussi, quel résultat attendez-vous? Vous mentionnez que la colonne de taille de votre fichier PST est 8, quel serait le résultat de votre table SAT? Je suppose 7? - Kevin Anthony Oppegaard Rose
Oui, je m'excuse mais quand je tapais la question, il me semblait que les tables étaient étiquetées. J'ai cependant essayé d'expliquer davantage. @ g.kov semblait avoir résolu mon problème. - MrMarho


Réponses:


Quelque chose comme ça?

enter image description here

Formule en H12 est:

=VLOOKUP(E12,$C$6:$H$8,MATCH("Size "&F12,$C$5:$H$5,0),FALSE)

Modifier: Comment la formule en H12 travaux.

La partie qui fournit un numéro de colonne,

MATCH("Size "&F12,$C$5:$H$5,0)

d'abord concaténer le préfixe "Size " avec la valeur de F12 (= 8), résultant en une chaîne "Size 8". Puis il parcourt les cellules de la ligne d'en-tête $C$5:$H$5  trouver cette chaîne de clé et renvoie un numéro de la cellule correspondante, à savoir, 6 (la dernière cellule de l'en-tête). Alors la formule

=VLOOKUP(E12,$C$6:$H$8,MATCH("Size "&F12,$C$5:$H$5,0),FALSE)

devient essentiellement

=VLOOKUP(E12,$C$6:$H$8,6,FALSE)

qui cherche le contenu de E12 (= 1) dans la première colonne de la plage $C$6:$H$8. En d'autres termes, il sélectionne la ligne, Correspond à Batch No=1, lequel est 1. Et compte tenu de la ligne (= 1) et de la colonne (= 6) dans le périmètre $C$6:$H$8, VLOOKUP renvoie une valeur stockée dans H6, lequel est 7.


10
2018-05-02 11:20



Oui exactement ce que je recherche. Vous venez de terminer 4 heures de brainstorming. - MrMarho
Il n'y a donc pas besoin de ma fonction IF car la validation des données a été effectuée, je suppose? - MrMarho
@MrMarho: Eh bien, il y a toujours une place pour les erreurs, donc c'est à vous de les manipuler. - g.kov
@ fix1234: ajouté - g.kov


Essaie le index Fonctionne avec une correspondance pour le lot # et le texte de taille:

=INDEX(C6:H8,MATCH($E12,$C$6:$C$8,0),MATCH("Size "&$F12,$C$5:$H$5,0))

2
2018-05-02 16:05



Bienvenue sur Super User. Les réponses qui éduquent sont meilleures que celles qui fournissent une solution simple et antérieure, car elles aident le lecteur à comprendre comment résoudre le problème suivant. Pouvez-vous ajouter quelques phrases pour expliquer comment cela fonctionne? Merci. - fixer1234