L'INDICE de MATCH VBA (retourner une valeur en fonction de deux critères)

Je suis en train de faire un travail pour un client où ils reçoivent un rapport hebdomadaire des clients et des régions (les deux colonnes, Une pour le Client & B pour la Région, dans une feuille de calcul). * J'ai omis les autres colonnes de cette feuille de calcul pour des raisons de clarté

Ils ont besoin de faire correspondre les prix sur cette feuille de calcul avec une référence de feuille de calcul, que nous appellerons les Prix. Chaque client et chaque région combinaison donne un certain prix qui est stocké sur la référence mentionnée ci-dessus la feuille de calcul (Dans cette référence de la feuille de calcul [Prix], la Colonne A est le client, la Colonne B est la région, la Colonne C est le prix pour Un client en B de la région).

Ce que je suis en train de faire est de:

Basé sur A1(le client) et B1(région), C1 devrait être (lookupvalue de prix sur la référence de la feuille de calcul).

La traditionnelle fonction recherchev ne marche pas car plusieurs critères doivent être satisfaits (c'est à dire on peut avoir des prix différents pour le même client dans une autre région).

J'ai essayé de le ci-dessous, sans succès

Dim ULastRow As Long
ActiveWorkbook.Worksheets(ActiveSheet.Name).UsedRange
ULastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row

Range("C2").FormulaR1C1 = _
"=Index(Range("C:C"), Match(Range("Prices!C1"), Range("Prices!C2:B34"), 0), 0)"
Selection.AutoFill Destination:=Range("C2:C2" & ULastRow)

Voir les liens ci-dessous pour des exemples de données (Malheureusement, je suis incapable de les ajouter en-ligne:

Ce que le client obtient: https://copy.com/EBABGl2EFjyFWcIH

Le "Prix" ou des données de Référence https://copy.com/oSSJuu7Dk4ox84tz

Tout conseil serait grandement apprécié.

Merci d'avance!

  • Suis-je comprendre cela correctement?: Vous avez une feuille de calcul avec les colonnes A,B et C et de leurs informations respectives. Et vous voulez sélectionner la valeur de C en fonction de A et de B?
  • Pourquoi avez-vous besoin de VBA et pas seulement des fonctions de recherche dans Excel?
  • Vous pouvez entrer une formule de tableau avec un index/match à regarder en fonction de plusieurs critères. Ce serait la formule, vous pouvez traduire en VBA. Je vais juste le faire et de dire que vous essayez de retourner quelque chose dans la colonne F : =index(F:F,match(A1&B1,CustomerRange&RegionRange,0)) et entrer avec CTRL+MAJ+ENTRÉE
  • daZza, la grande question, je vais préciser dans un montage. Merci!
  • Pas encore tout à fait sûr si je comprends votre situation correctement 😛 Donc tu as 1 de la feuille de calcul où vous n'avez que les colonnes A et B, et en plus de cela, vous avez une autre feuille de calcul appelé "Prix", qui a été colonnes A, B et C? Dans ce cas, la première feuille de calcul serait totalement inutile, parce que vous avez obtenu toutes les informations stockées dans le "Prix" un. La sélection de la C de la colonne que l'on doit le travail comme dans ma réponse ci-dessous. Avez-vous essayer encore?
  • Je suis désolé pour la confusion et j'apprécie vraiment votre aide à cet égard. Qui est correct. La première feuille de calcul est ce que le Client obtient (en fait une liste de toutes les transactions qu'ils ont eu avec le client). Ils ont besoin d'attribuer un prix à chaque transaction sur cette feuille de calcul basé sur le taux standard sur la référence de la feuille de calcul. Découvrez les images de l'édition et laissez-moi savoir si cela aide à clarifier les choses. J'ai essayé ta réponse mais je ne suis pas en mesure de l'obtenir pour fonctionner. Merci encore une fois!
  • Je vois. Je vais modifier ma réponse, donnez-moi juste quelques minutes.