Comment faire une différence conditionnelle?

29lbl

XLDnaute Nouveau
Bonjour à tous,

Dans l'exemple ci-dessous (voir fichier joint également), je bute sur la réalisation d'une différence conditionnelle(colonne durée), alors que dans ce même exemple, je fais la somme conditionnelle (colonne solde) grâce à SOMME.SI.
Contrainte: je ne peux pas faire le tri sur le nom


Date Nom Qté Solde Durée
5/1/09 Pierre 300 300
6/1/09 Pierre -300 0 Comment calculer la durée du crédit?
7/1/09 Paul 1200 1200
8/1/09 Jacques -50 -50
12/1/09 Paul -1200 0 Comment calculer la durée du crédit?
12/1/09 Paul -1000 -1000
13/1/09 Paul 1000 0
13/1/09 Jacques 50 0 Comment calculer la durée du débit?
13/1/09 Paul 1000 1000



J'ai essayé pas mal de formules y compris RECHERCHEH mais Je tourne en round, je ne trouve pas...

Avez vous une solution?

Je vous remercie pour votre aide
 

Pièces jointes

  • problème fonction excel.xls
    18.5 KB · Affichages: 92
  • problème fonction excel.xls
    18.5 KB · Affichages: 91
  • problème fonction excel.xls
    18.5 KB · Affichages: 91

Tibo

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonjour,

J'ai regardé à plusieurs reprises ton fichier. Je ne suis pas sûr de tout comprendre.

Peux-tu nous renvoyer ton fichier complété manuellement des résultats attendus (en rouge par exemple).

A te (re)lire

@+
 

abcd

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonjour, salut Tibo,

D'après ce que j'ai compris.
J'ai supposé qu'on ne tient compte que des jours, heures non comprises.

E10 : =SI(D10=0;ENT(A10)-MAX(SI(B$9:B9=B10;ENT(A$9:A9)));"")
formule matricielle à valider par Ctrl+Maj+Entrée
et à copier vers le bas.

Je coïnce encore sur les lignes 20 à 22 → pas (encore) de solution.

abcd
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonjour à tous

Une petite question pour compliquer la situation (comme si cela ne l'était pas déja:D!!!) : Est-ce que les prêts ou remboursements peuvent se faire en plusieurs fois, donc se faire sur plusieurs lignes ?

@ plus
 
Dernière édition:

29lbl

XLDnaute Nouveau
Re : Comment faire une différence conditionnelle?

Merci pour votre aide


TIBO: tu trouveras ci joint le fichier complété par les résultats attendu + d'autres précisions

ABCD: je vais tester de ce pas ta solution

CISCO: Oui les prets et remboursement peuvent se faire en plusieurs fois.


Cordialement
 

Pièces jointes

  • problème fonction excel.xls
    24 KB · Affichages: 83
  • problème fonction excel.xls
    24 KB · Affichages: 85
  • problème fonction excel.xls
    24 KB · Affichages: 86

CISCO

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonjour et bon W.E. à tous

29lbl, le fichier ci-joint t'aidera peut être à résoudre ton problème.

Il faudra faire des modifications à ces formules si il faut compter en jour entier.

@ plus
 

Pièces jointes

  • fonction excel(1).xls
    43.5 KB · Affichages: 72

29lbl

XLDnaute Nouveau
Re : Comment faire une différence conditionnelle?

Bonjour CISCO,

merci de t'être penché sur mon problème qui s'avère être plus ardu qu'il n'y parait.
Je ne m'en sors pas non plus et ça n'est pas faute d'avoir cherché...
Malheureusement, les résultats ne correspondent pas à ce que j'attends
voir le fichier joint à la demande de TIBO, avec en colonne G les résultats attendus.

salutations

@+
 

CISCO

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonsoir

Je sais bien que mon fichier ne donne pas les résultats que tu attends. Tu écris que le problème est plus ardu que prévu... A mon avis, c'est ainsi parceque tu ne l'abordes pas de la bonne manière... Comme signalé sur mon fichier, il ne faut pas tenir compte des couleurs du fichier. On a !
*Le 12/1/09, Paul emprunte 1000.
*Le 13/1/09 il rembourse ces 1000, son solde est donc de 0. Il doit payer des intérêts sur 1000 empruntés du 12/1/09 - 13/1/09.
*Le 13/1/09, un peu plus tard, il prête 1000.
*Le 19/1/09, il prête encore 1000. Son solde est de 2000. Il doit donc toucher des intérêts correspondant à 1000 prêtés entre le 13 et le 19.
*Le 21, il emprunte 1000. Le solde n'est plus que de 2000 - 1000 = 1000 en sa faveur. Il doit donc toucher des intérêts correspondant à 2000 prêtés entre le 19 et le 20.
*Le 30, il emprunte encore 1000. Le solde est donc de zéro, et il doit toucher des intérêts correspondants aux derniers 1000 prêtés entre le 21 et le 30/01.

Tu as choisi de calculer ton buget que lorsqu'il y a égalité des sommes, d'où les couleurs choisies. Si Paul emprunte 1000, tu considères que ces 1000 ne sont remboursés que le jour où il rembourse une somme exactement égale à 1000, alors qu'entre temps il peut avoir placé 10 000 000 et repris 11 000 000 !!!

@ plus
 
Dernière édition:

29lbl

XLDnaute Nouveau
Re : Comment faire une différence conditionnelle?

Bonsoir Cisco,

Il est très probable que j'aborde mal le sujet.
J'ai voulu (à tort) le simplifier pour l'aborder sur le forum.
En fait il s'agit de calculer des frais relatifs à la durée de détention d'actions sur un portefeuille titre.
1000 actions "'Paul" ont été achetées le 13/01.
1000 actions "Paul" ont à nouveau été achetées le 19/01.
1000 actions "Paul" sont vendues le 21/01 - Ces 1000 actions ont été détenues du 13 au 21/01. (respect du FIFO)
1000 actions "Paul" sont vendues le 30/01 - Ces 1000 actions ont été détenues du 19 au 30/01.

@+
 

CISCO

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonsoir

Effectivement, cela semble un petit peu plus compliqué.

Puisqu'il faut abolument prendre en compte la couleur des lignes, ne pourrais tu modifier à chaque nouvel achat le nom de l'acheteur Paul1, Paul2... et faire à la fin la somme sur Paul uniquement (cf fichier ci-joint), sans tenir compte de l'"extension"...?

@ plus

P.S: Mais je ne sais pas ce que cela donne lors de vente partielle... A vérifier, modifier, adapter...
 

Pièces jointes

  • fonction excel(2).xls
    35 KB · Affichages: 61
  • fonction excel(2).xls
    35 KB · Affichages: 60
  • fonction excel(2).xls
    35 KB · Affichages: 60
Dernière édition:

abcd

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonsoir,

Je n'ai aucune notion de comptabilité, donc j'emploie mon boulier compteur !

Il me semble qu'en encodant différement les données on obtient un résultat logique (pour moi !).

Voir la pièce jointe.

abcd
 

Pièces jointes

  • 29lbl.xls
    27.5 KB · Affichages: 66

29lbl

XLDnaute Nouveau
Re : Comment faire une différence conditionnelle?

CISCO,
Tes calcul sont bons, effectivement je vais sans doute être contraint de passer par une étape intermédiaire.

ABCD,
Je ne peux pas encoder différemment les données, il peut y avoir plusieurs opérations de crédits (achat) pour une seule vente et inversement. Il n'y a pas forcément 1 achat suivi d'une vente avec solde à 0.
Comme je l'ai dit précedemment, il s'agit de calculer la durée de détention d'actions en respectant le FIFO (1er entré - 1er sorti), afin de pouvoir calculer précisement les frais.

Bonne soirée et merci
 

CISCO

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonsoir

ma petite combine ne fonctionne pas, par exemple lorsque la vente des actions se fait en plusieurs fois (cf fichier).

J'ai donc modifié la formule pour obtenir les résultats corrects. Ce coup ci ce n'est plus la valeur min qu'il faut afficher (on ne calcule pas la durée par rapport à la dernière transaction d'untel2 par ex), mais la valeur max (on calcule la durée par rapport à la première transaction de Monsieur untel2).

@ plus
 

Pièces jointes

  • fonction excel(2).xls
    36.5 KB · Affichages: 57
  • fonction excel(2).xls
    36.5 KB · Affichages: 54
  • fonction excel(2).xls
    36.5 KB · Affichages: 55

CISCO

XLDnaute Barbatruc
Re : Comment faire une différence conditionnelle?

Bonjour à tous, bonjour 29 lbl

Ou est-ce que tu en es avec ce fichier et ce cahier des charges compliqué ?

Pour essayer de faire un calcul sans ajouter des 1, des 2... après les noms, pourrais tu nous préciser davantage ce cahier des charges, soit en donnant davantage d'exemples sur un fichier, soit en listant les conditions ( à bien définir, peut être en mettant en évidence d'autres conditions que je n'ai pas remarquées ):

* nom jamais rencontré : différence =0
* nom rencontré et solde précédent = 0 : différence = 0
* nom rencontré et solde > 0 et qté > 0 : différence = 0
* nom rencontré et solde > 0 et qté < 0 : différence calculée avec le plus vieux solde positif ayant suivi le solde = 0 le moins vieux
* nom rencontré et solde < 0 et qté < 0 : différence calculée par rapport à ....
* nom rencontré et solde < 0 et qté > 0 : différence calculée par rapport à ...

@ plus
 

29lbl

XLDnaute Nouveau
Re : Comment faire une différence conditionnelle?

Bonsoir à tous, Bonsoir Cisco

Et encore merci de persévérer

Ci-joint 1 fichier qui correspond plus à ma problématique mais qui devient encore plus complexe, limite décourageant pourtant c'est surement réalisable... (tous les cas de figure sont représentés).
La finalité de mon problème n'est pas de calculer les durées de détention d'actions mais de calculer les frais relatifs à cette durée de détention, j'ai donc rajouté le cours de l'action et le montant de la transaction.
En bas de feuille, J'ai synthétisé tous les cas de figure et il ressort 4 cas pour lesquels le calcul est à faire;
La difficulté que je rencontre ensuite, c'est d'écrire l'équation même en français, alors que le calcul est évident puisque je le fais à la main en colonne I.

Je n'ai malheureusement pas l'esprit analytique d'un Prof de math ou d'un comptable...

à +
 

Pièces jointes

  • problème fonction excel5.xls
    39.5 KB · Affichages: 59

Discussions similaires

Statistiques des forums

Discussions
312 765
Messages
2 091 909
Membres
105 098
dernier inscrit
geoffreybierent