Formule effectuant calcul à partir de deux tableaux

Bonjour,

Je dispose des deux tableaux suivants :

tableau 11 tableau 12

Je cherche une formule permettant de réaliser une somme en multipliant la quantité d'objets d'une ligne du deuxième tableau, par le prix de vente indiqué dans le premier tableau, en fonction du contenu de la colonne Niveau.

Prenons pour exemple la ligne 28 associée à l'essai 24 dans le deuxième tableau.

Le calcul que le tableur doit effectuer serait celui-ci : 4 x 7 113 + 1 x 10 669 + 2 x 16 360

La formule simplifiée serait : =(Y28*7113)+(Z28*10669)+(AA28*16360)

Le problème, c'est que je ne peux pas taper le prix de vente associé à chaque objet moi-même à chaque fois. Il doit aller chercher lui-même le prix de vente des objets dans le premier tableau qui contient 400 lignes. La formule doit lui expliquer qu'il faut observer le nombre indiqué dans la colonne X pour chercher la ligne correspondant dans le premier tableau et trouver les valeurs.

Mon explication est-elle suffisamment claire ? Est-ce qu'il est possible de faire cela avec Excel, et si oui comment ?

Merci d'avance.

Bonjour,

OUI c'est assez clair. Utilise la fonction EQUIV 2 fois, en vertical sur 113 ici et en horizontal pour les couleurs, tu obtiendras alors la colonne et la ligne du tableau de prix. Ajoute 1 aux colonnes car tu as des cellules fusionnées.

Avec un fichier excel au lieu d'une image je pourrai te faire plus facilement la démonstration.

Voici une version simplifiée de mon fichier pour la démonstration :

J'ai décomposé la formule pour plus de clarté


EQUIV(N$4;$C$2:$J$2;0)+2

permet de trouver la colonne du tableau de prix

EQUIV($M5;$B$4:$B$8;0)

permet de trouver la ligne

INDEX va rechercher la valeur dans le tableau

Bonjour le forum,

S5 :

=SIERREUR(SIERREUR(RECHERCHEV(M5;$B$4:$J$8;3;0)*N5;0)+SIERREUR(RECHERCHEV(M5;$B$4:$J$8;5;0)*O5;0)+SIERREUR(RECHERCHEV(M5;$B$4:$J$8;7;0)*P5;0)+SIERREUR(RECHERCHEV(M5;$B$4:$J$8;9;0)*Q5;0);"")

A tirer vers le bas.

Ou :

=SOMMEPROD(($B$4:$B$8=M5)*($D$4:$D$8))*N5+SOMMEPROD(($B$4:$B$8=M5)*($F$4:$F$8))*O5+SOMMEPROD(($B$4:$B$8=M5)*($H$4:$H$8))*P5+SOMMEPROD(($B$4:$B$8=M5)*($J$4:$J$8))*Q5

Ou :

=SIERREUR(INDEX($D$4:$D$8;EQUIV(M5;$B$4:$B$8;0))*N5+INDEX($F$4:$F$8;EQUIV(M5;$B$4:$B$8;0))*O5+INDEX($H$4:$H$8;EQUIV(M5;$B$4:$B$8;0))*P5+INDEX($J$4:$J$8;EQUIV(M5;$B$4:$B$8;0))*Q5;"")

Bonjour MBBP

Bon j'attends la 4ème solution avec impatience !!

J'avais essayé de compacter la dernière formule que tu proposes pour éviter la somme des 4 valeurs que j'avais faites, mais je n'ai pas réussi, ni même en matriciel.

Bonjour Steelson

Mais pas 304.

203

AH ben j'avais une 405

Une étape omise : pendant 16 ans j'ai gardé une 607 !

mbbp a écrit :

Ou :

=SOMMEPROD(($B$4:$B$8=M5)*($D$4:$D$8))*N5+SOMMEPROD(($B$4:$B$8=M5)*($F$4:$F$8))*O5+SOMMEPROD(($B$4:$B$8=M5)*($H$4:$H$8))*P5+SOMMEPROD(($B$4:$B$8=M5)*($J$4:$J$8))*Q5

Cette formule m'affiche le message d'erreur : #VALEUR!

Fichier joint avec les 3 formules proposées :

23formules.xlsx (12.14 Ko)
mbbp a écrit :

Une étape omise : pendant 16 ans j'ai gardé une 607 !

c'est bien formulé !

j'ai toujours ma seconde 607 4 ans la première, 13 ans la seconde


4lh a écrit :
mbbp a écrit :

Ou :

=SOMMEPROD(($B$4:$B$8=M5)*($D$4:$D$8))*N5+SOMMEPROD(($B$4:$B$8=M5)*($F$4:$F$8))*O5+SOMMEPROD(($B$4:$B$8=M5)*($H$4:$H$8))*P5+SOMMEPROD(($B$4:$B$8=M5)*($J$4:$J$8))*Q5

Cette formule m'affiche le message d'erreur : #VALEUR!

Hé bien parce que certaines cases vides ... ne sont en fait pas vides

Je te conseille de faire comme moi : tu passes toutes les cases vides en revue et fais supprimer le contenu !

Ah oui, je comprends maintenant. J'avais rempli ces cellules avec la formule : =SI(ESTVIDE(I4);"";ARRONDI.SUP(I4/6;0))

Est-il possible de la conserver ? Elle me permet d'obtenir automatiquement le contenu de la colonne Vente en fonction du contenu de la colonne Achat, tout en affichant un blanc quand la colonne Achat est vide, au lieu d'une erreur.

4lh a écrit :

Ah oui, je comprends maintenant. J'avais rempli ces cellules avec la formule : =SI(ESTVIDE(I4);"";ARRONDI.SUP(I4/6;0))

Est-il possible de la conserver ?

La première formule que j'ai proposée permet cela.

Très bien, c'est la formule que j'ai choisie et elle remplit son rôle dans la version complète de mon fichier. Merci à vous deux pour votre aide.

Rechercher des sujets similaires à "formule effectuant calcul partir deux tableaux"