Repartir proportionnellement un montant

alex53

XLDnaute Junior
Bonjour le forum,
Apres recherche sur le forum, je n'arrive pas a trouver la solution a mon probleme.

Le probleme est le suivant:
Produit A dans entrepot 1 :valeur 10 euros
Produit A dans entrepot 2 :valeur 20 euros

Valeur a repartir proportionnellement entre les entrepots pour le produit A: 5 euros

Donc ici evidemment la formule a appliquer dans excel est ( par exemple pour Produit A entrepot 1):
10/(10+20)*5 = 1.67 euros

Le probleme est que j'ai beaucoup d'entrepots et beaucoup de produits. je dois donc retaper la formule a chaque fois. Ce qui est treeees long. Je suis persuade qu'il existe un moyen de gagner du temps, mais comment, je suis perdu? Une formule a creer avec VBA? une formule matricielle.

Voici le fichier (simplifie). Je suis ouvert a toute proposition, que ce soit la resolution du probleme grace au fichier ou une direction a suivre, une idee a creuser.

Merci
 

Pièces jointes

  • Repartition (2).xlsx
    12.7 KB · Affichages: 214
  • Repartition (2).xlsx
    12.7 KB · Affichages: 186
  • Repartition (2).xlsx
    12.7 KB · Affichages: 178

Nairolf

XLDnaute Accro
Re : Repartir proportionnellement un montant

Salut tout le monde,

Je viens un peu comme un cheveu sur la soupe, mais je suivais le sujet de loin car il m'intéressait, et avec ce que j'ai appris sur les posts précédents, je me permets de te proposer le fichier joint.

A noter, alex53, que j'ai modifié la présentation de ta feuille info pour que la recherche soit plus simple.
 

Pièces jointes

  • Repartition (2-4)_Nairolf.xlsx
    11.2 KB · Affichages: 94

hoerwind

XLDnaute Barbatruc
Re : Repartir proportionnellement un montant

Re,

Il ne faut pas rendre les choses plus compliquées qu'elles ne le sont, ce n'est plus le même fichier !

J'ai donc continué sur le fichier précédent, à toi de vérifier si les résultats sont exacts (à mon avis : oui).
 

Pièces jointes

  • RepartitionParEntrepot V3.xlsx
    11.7 KB · Affichages: 94

alex53

XLDnaute Junior
Re : Repartir proportionnellement un montant

Hoerwind, Nairolf,
Merci pour vos solutions, les 2 fonctionnent.

Hoerwind,
Bien vu la combine pour le Recherche V (c'est ce qui me gênait)
en fait Nairolf n'a pas modifié le fichier, c'est moi qui avait modifié la dernière version (celle ou j'ai mis manuellement les résultats°

Nairolf,
Peux-tu m'expliquer un peu ta formule stp. Ça m'intéresse beaucoup

=SI(C3<>"";D3/(SOMME(SI(($A$3:$A$20=$A3)*($B$3:$B$20=$B3);$D$3:$D$20)))*INDEX(info!$C$3:$F$8;EQUIV(A3;info!$B$3:$B$8;0);EQUIV(B3;info!$C$2:$F$2;0));"")

Merci!
 

Nairolf

XLDnaute Accro
Re : Repartir proportionnellement un montant

En fait je me suis inspirer des calculs matriciels donnés par CISCO.

En détail sur un exemple:
Pour la cellule F3, le principe est que je multiplie les matrices "Nom du produit" étant égale à "Produit 1" (ça me donne une matrice {VRAI;FAUX;VRAI...}) et "Entrepot" étant égale "entrepot Lille" (ça me donne aussi une matrice {VRAI;FAUX;FAUX...}).
Le résultat de la multiplication me donne une matrice {1;0;0...} indiquant donc que les deux conditions sont réunies où non (1 correspondant à VRAI et 0 à FAUX dans le critère de la fonction SI()).
Le SI() retourne ensuite une matrice de "Valeur brute" avec les valeurs si les deux conditions sont réunies et FAUX sinon.
Puis somme() additionne toutes les valeurs <>FAUX de la matrice.

La combinaison index(equiv()) permet de trouver une valeur dans un tableau à double entrée, c'est pour cela que j'ai changé la disposition de ta feuille "info".
 

alex53

XLDnaute Junior
Re : Repartir proportionnellement un montant

Bonjour,

j'ai une derniere question. En appliquant ma formule, j'ai fait une erreur, et au lieu d'ecrire
=ЕСЛИ(ЕЧИСЛО(C3);D3/СУММПРОИЗВ((Prod=A3)*$D$3:$D$28)*ВПР(A3;info!$B$3:$C$14;2;0);"") j'ai ecris
=ЕСЛИ(ЕЧИСЛО(C3);D3/СУММПРОИЗВ((Prod=A3)*D3)*ВПР(A3;info!$B$3:$C$14;2;0);"")


Ce deuxieme calculme donne aussi un resultat interessant, car il enleve le meme montant par produit (et non plus proportionnellement a la valeur brute.
Cepedant, je ne comprends pas ce deuxieme calcul.
Hoerwind, peut-etre que tu comprends ce qui se passe dans la tete de excel avec ce 2eme calcul ?

Ci joint le fichier avec les 2 calculs cote a cote si ma question n'est pas clair

Merci
 

Pièces jointes

  • Repartition V2.xlsx
    14.8 KB · Affichages: 84
  • Repartition V2.xlsx
    14.8 KB · Affichages: 78
  • Repartition V2.xlsx
    14.8 KB · Affichages: 78

hoerwind

XLDnaute Barbatruc
Re : Repartir proportionnellement un montant

Bonjour,

Je préfère de loin la formule sous la pièce jointe à celle sous ton message (lol !)
Par curiosité, quelle est cette langue (grec, russe, ... ) ?

Réponse pas fort compliquée !
=D3/SOMMEPROD((Prod=A3)*D3) ou 650/(3*650) = 0.3333 ou 1/3
En multipliant ce résultat par celui de la fonction RECHERCHEV (120) on obtient 40
 

Nairolf

XLDnaute Accro
Re : Repartir proportionnellement un montant

Salut alex53,

Pas mal tes formules en russe :confused:.

Dans ton second calcul voilà ce que l'on trouve en décomposant le calcul:
D3/SOMMEPROD((Prod=A3)*D3)=D3/(SOMMEPROD((Prod=A3)*1)*D3)=1/SOMMEPROD((Prod=A3)*1)=1/NB.SI(Prod;A3)
Donc ça te répartie sans pondération ton montant total de remise sur tous produits identiques.
 

alex53

XLDnaute Junior
Re : Repartir proportionnellement un montant

Ok j'ai compris, merci pour l'aide.

Oui effectivement, c'est du russe, car je travaille en ce moment en russie. Je n'ai pas fait attention en collant la formule.
D'ailleurs une question me vient a l'esprit: Si excel traduit automatiquement les formules dans les fichiers, c'est donc que les traductions sont presentes dans excel... Donc il doit bien y avoir un moyen d'y avoir acces.
Parce que pour repprendre mon cas, je suis oblige de traduire les formules du fr a l eng puis de l eng vers le ru (impossible de trouver un site avec les traductions des formules du fr vers le ru)

Quelqu'un en a peut etre entendu parler?

alex53
 

eriiic

XLDnaute Barbatruc
Re : Repartir proportionnellement un montant

Bonjour,

Sur excel 2010 tu peux ajouter des langues dans 'fichier / options / langue'

Sinon dans le répertoire C:\Program Files (x86)\Microsoft Office\OFFICE11\1036 tu as un fichier VBALIST.XLS avec dans le 3ème onglet la traduction 'langue installée/anglais' des fonctions feuille.
En le faisant sur excel russe et un en français tu auras tout.

...\OFFICE11\... : excel 2003
...\OFFICE12\... : excel 2007
...\OFFICE14\... : excel 2010 (pas de 13, ça porte malheur :) )

eric
 

Discussions similaires

Réponses
9
Affichages
219

Statistiques des forums

Discussions
312 520
Messages
2 089 300
Membres
104 092
dernier inscrit
karbone57