Formule pour récupérer informations depuis un catalogue et une colonne vari

Bonjour,

Je suis entrain de créer un tableau de commandes (orders) et j'aimerais qu'il récupère automatiquement les prix depuis le catalogue en fonction de la référence (id ordered) et du client.

Je pensais faire une RECHERCHEX mais je ne vois pas comment récupérer la bonne colonne en fonction du client

Dans le catalogue il y environ 1000 lignes et les colonnes "prix client A", "prix client B" et "id" sont espacés par plusieurs clients

Dans mon exemple il n'y a que 2 clients mais en réalité il y a plutôt une dizaine.

Est-ce que quelqu'un verrais un moyenne comment faire ceci ?

La formule sera ensuite répliqué sur environ 1000 commandes pour les prix, et le nom, du coup j'aimerais qu'il soit la plus optimisé que possible

modif :

j'ai oublié de préciser que je voulais aussi que la formule s'adapte si on ajouté un client supplémentaire sans devoir modifier la formule

sans titre
20classeur2.xlsx (9.48 Ko)

Bonjour,

Voici la formule pour te renvoyer le prix :

11classeur2.xlsx (9.36 Ko)
=SI(J2="A"; RECHERCHEV(H2; $A$2:$D$5; 3; FAUX); SI(J2="B"; RECHERCHEV(H2; $A$2:$D$5; 4; FAUX); ""))

En pièce jointe, la formule appliquée en colonne "K".

Bonjour,

Merci pour ton retour, j'ai oublié de préciser que je voulais aussi que la formule s'adapte si on ajouté un client supplémentaire sans devoir modifier la formule

Bonsoir à tous !

Et.....

Une proposition ?

=RECHERCHEX(I4;$A$4:$A$7;INDEX($C$4:$D$7;;EQUIVX(1;--ESTNUM(CHERCHE(K4;$C$3:$D$3))));"--")

Les plages sont à adapter....

Merci pour l'acceuil

C'est exactement ce dont que je cherchais, merci !

si les colonnes prix client étaient espacés de 10-12 colonnes chacune comment ferait tu ?

sachant que la plage fera donc env 30 colonnes et 1000lignes, cela me semble énorme comme plage, et risque de plomber le fichier

Bonsoir à tous de nouveau !

si les colonnes prix client étaient espacés de 10-12 colonnes chacune comment ferait tu ?

"espacées" ? C'est-à-dire ?

L'argument matrice de la fonction INDEX peut être remplacé par la fonction ASSEMB.H.

Exemple :

=RECHERCHEX(I4;$A$4:$A$7;INDEX(ASSEMB.H($C$4:$C$7;$D$4:$D$7);;EQUIVX(1;--ESTNUM(CHERCHE(K4;$C$3:$D$3))));"--")

tu trouveras ci-joint en feuille 2 une exemple de catalogue "plus réaliste" à la quel d'autres client pourra être ajouté dans le future

l'espacement ne sera pas toujours d'un nombre de colonne égaux :/

13classeur2.xlsx (12.74 Ko)

Bonsoir à tous de nouveau !

....... ci-joint en feuille 2 une exemple de catalogue "plus réaliste" .....

Il est (très très très....) nettement préférable de préciser dès le début l'ensemble des contraintes. Cela évite d’œuvrer dans de mauvaises directions...

Une approche possible sur la base du classeur2 :

tout a fait d'accord avec toi, excuse moi ... en effet je n'étais pas assez claire au début et mon exemple était trop simpliste

est-ce que tu pourrais m'expliquer un peu le fonctionnement de ta formule car elle me semble bien complexe avec beaucoup de fonctions imbriqués

si j'ai bien compris :

1- tu filtre sur les colonnes utiles

2- tu filtre pour n'avoir que le colonne souhaité

3- RECHERCHEX pour avoir la valeur

c'est bien cela ?

si c'est bien cela, est-ce que tu peux m'expliquer à quoi sert les fonctions "estnum" "trouve" et "prendre" ?

"mini" imprévu

je me suis également rendu compte que j'avais de produits (name) mutualisés donc je me retrouve avec 2 lignes avec la même name ... mais du coup je vais donc prendre le max des 2 ligne

je me retrouve donc avec ceci (extrait du fichier réel):

=MAX(FILTRE(FILTRE(FILTRE(CATALOGUE!AI$2:CI$639;ESTNUM(CHERCHE("Chiffrage";CATALOGUE!AI$2:CI$2)));ESTNUM(TROUVE(CATALOGUE!AI2;PRENDRE(FILTRE(CATALOGUE!AI$2:CI$639;ESTNUM(CHERCHE("Chiffrage";CATALOGUE!AI$2:CI$2)));1))));CATALOGUE!C2:C639=DASHBOARD!A5))

je sais que je peut l'optimiser avec LET mais il dois bien avoir un moyen plus simple de le faire plutôt que 3 filtres ?

Ps. j'ai juste remplacé la rechercheX par un MAX et FILTRE

Bonjour à tous !

est-ce que tu pourrais m'expliquer un peu le fonctionnement de ta formule car elle me semble bien complexe avec beaucoup de fonctions imbriqués

si j'ai bien compris :

1- tu filtre sur les colonnes utiles

2- tu filtre pour n'avoir que le colonne souhaité

3- RECHERCHEX pour avoir la valeur

c'est bien cela ?

Votre compréhension est bonne !

si c'est bien cela, est-ce que tu peux m'expliquer à quoi sert les fonctions "estnum" "trouve" et "prendre" ?

Avez-vous eu la curiosité de consulter l'aide Microsoft sur ces fonctions ?

ESTNUM : fonction utilisée pour transformer un vecteur utilisé dans la fonction filtre en vecteur VRAI/FAUX.

TROUVE : recherche le nom du client dans les en-têtes en respectant la casse.

PRENDRE : retourne la première ligne de la matrice des prix clients.Contient donc les en-têtes.

Concernant la nouvelle contrainte, la fonction MAX peut être intégrée dans ma proposition.

Remarque : A priori, il serait envisageable de ne concevoir qu'une formule unique et dynamique via la fonction MAP.

bonjour, oui j'avais regardé mais j'avoue que ton explication concernant "ESTNUM" est beaucoup plus claire

en regardent à la formule ce matin j'ai réussi a l'optimiser comme ceci :

=MAX(FILTRE(FILTRE(CATALOGUE!AI$2:CI$647;ESTNUM(CHERCHE("Chiffrage Ind "&H5;CATALOGUE!AI$2:CI$2)));CATALOGUE!C$2:C$647=DASHBOARD!A5))

si t'as des remarques n'hésites pas ;)

Merci beaucoup pour ton aide

Bonjour à tous !

si t'as des remarques n'hésites pas ;)

Faute de classeur, je vais m'abstenir de porter un jugement.....

Mais si le résultat retourné est cohérent, faites-vous confiance !

---> Ne pas oublier de passer le sujet en mode résolu !

Rechercher des sujets similaires à "formule recuperer informations catalogue colonne vari"