|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
Bonjour,
je suis en train de créer un rapport sous BO avec un tableau composé des éléments suivants : pays; client; numéro de compte; montant; montant assuré; non assuré parmi ces éléments, le pays, le client et le numéro de compte sont des dimensions. le montant est la somme des différents montants concernant un compte et le montant assuré est défini par compte. mon but est de calculer le non assuré pour le pays. pour cela, je dois pour chaque compte faire la différence : montant - montant_assure. Si cette différence est positive, je retourne la valeur de la différence sinon je retourne 0. j'obtiens donc la formule suivante : Si((([montant_assure]-[montant])PourChaque([compte]))<0) Alors((-1)*(([montant_assure]-[montant])PourChaque([compte]))) Sinon(0) cette formule fonctionne si je laisse toutes mes dimensions mais dès que je retire la notion de compte, elle affiche #VALEURMULTI. J'ai essayé de mettre une Somme autour du "si" mais ça ne fonctionne pas. J'ai essayé Dans avec toutes mes dimensions puis en en retirant petit à petit mais ça ne change rien. Est-ce que vous avez une idée de comment je peux obtenir la somme par pays ? Merci d'avance |
|
|
00
|
|
|
#2 | ||
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Bonjour,
Essaye ca : Code :
__________________
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
Merci j'avais pas encore essayé
mais ça ne marche malheureusement toujours pas |
|
|
00
|
|
|
#4 | ||
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Il t'affiche quoi?
J'ai zappé que tu le voulais par pays essaye ca : Code :
__________________
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
Merci j'ai essayé ta deuxième solution
maintenant il ne me met plus de #VALEURMULTI par contre je n'ai pas le bon résultat du coup je te donne un exemple tu verras peut-être mieux. un client a deux comptes 101 et 102 sur le compte 101 il est assuré pour 50€ sur le compte 102 il est assuré pour 60€ il reçoit comme facture pour son compte 101 : 25€, 15€, 28€ soit au total 68€ il reçoit comme facture pour son compte 102 : 36€, 12€ soit au total 48€ je voudrais que BO me calcule 50-68 = -18 <0 donc on retourne -18 et 60-48 = 12 >0 donc on retourne 0 puis qu'il m'additionne le tout pour que mon client au final soit à -18 avec la formule telle que tu me la donnes il calcule 50+60=110 et 68+48=116 puis 110-116=-6 je pense que mon #VALEURMULTI vient du fait que je ne veux l'addition qu'à la fin... désolée si je me suis mal exprimée en formulant ma question |
|
|
00
|
|
|
#6 | ||
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Je ne suis pas loin du coup
Ca devrait être mieux avec ca je pense: Code :
__________________
|
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
Bonjour,
j'ai essayé ta solution elle me donne comme résultat 0 partout. J'ai regardé pourquoi et en fait dans son test il additionne toutes les valeurs de [montant_assure] et il soustrait la somme de toutes les valeurs de [montant]. J'ai essayé d'adapter un peu la formule de test Code :
Somme((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client])) je continue à faire des tests à partir de ta formule pour qu'il arrive à ne pas me faire la somme sur les [montant_assure] par client |
|
|
00
|
|
|
#8 | |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Citation:
Code :
Somme((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client];[compte]))
__________________
|
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
Là ça marche
il me donne bien la différence que je veux et quand je retire une dimension de détail il fait bien la somme après les calculs du coup, j'ai essayé de remettre mon "si" Code :
=Somme(Si((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client];[compte])<0) Alors((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client];[compte])) Sinon(0) Dans([client];[compte])) j'ai zappé quelque chose ?désolée j'avais pas vu le # |
|
|
00
|
|
|
#10 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Ajoute juste un "Somme" après ton alors et ca devrait être bon.
Entre ta formule "test" et la formule finale, le "Somme" n'est plus au même endroit. Essaye de le mettre au même endroit dans ta formule en gros.
__________________
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
J'ai retiré ma somme du début et mis une somme juste après le Alors mais j'ai toujours mon #VALEURMULTI
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
Et si je remet ma somme au même endroit que mon test
il les additionne tous avant de tester que c'est <0 ou pas alors que dans ma formule je ne dois additionner que ceux qui sont <0 au niveau de détail le plus bas |
|
|
00
|
|
|
#13 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Code :
=Somme(Si((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client];[compte])<0) Alors((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client];[compte])) Sinon(0)) Dans([client];[compte]) ![]() Je pense que tu vas finir par trouver en bidouillant les contextes... La formule devient de plus en plus indigeste, c'est dommage
__________________
|
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
#VALEURMULTI le retour
![]() c'est sûr que ce serait plus facile mais comme ça au moins je peux essayer de continuer à chercher ouais je pense que je vais continuer à jouer avec mes contextes jusqu'à ce que ça me sorte quelque chose. je vais sûrement essayer de repartir de la formule qui fonctionnait hors du si mais pas dedans. mais c'est vrai que ça devient vraiment illisible. Rassure moi c'est pas impossible à faire quand même ? |
|
|
00
|
|
|
#15 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Non, pas de raison que ca soit impossible puisque
Code :
Somme((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client];[compte])) Après il faut s'amuser avec le si ![]() Bon courage !
__________________
|
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
bon je m'y remet alors
![]() beaucoup pour ton aide en tout cas
|
|
|
00
|
|
|
#17 |
|
Membre actif
![]() Inscription : février 2008 Messages : 129 ![]() |
Bonjour et bonne année à tous,
Je te propose cette formule ci : Code :
=Somme([montant assuré]-[montant]) WHERE (([montant assuré]-[montant]) PourChaque ([num compte]) <0) |
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
Bonjour,
Désolée d'avoir été longue à répondre mais comme ta formule me donnait des valeurs cohérentes j'ai pris le temps de faire plusieurs tests. Et ça marche !
|
|
|
00
|
|
|
#19 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Content que ta formule fonctionne.
Tu peux la poster juste par curiosité pour voir ce qu'elle donne ?
__________________
|
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Jennifer Inscription : janvier 2011 Messages : 15 ![]() |
Celle que j'avais faite à partir de nos essais donne ça
Code :
Somme(-1*(Si((([Insured LIMIT]-Somme([Balance Net] Dans ([Account Number])) Dans ([Account Number])))<0) Alors((([Insured LIMIT]-Somme([Balance Net] Dans ([Account Number])) Dans ([Account Number])))) Sinon(0)) Dans ([Account Number];[Name];[Entity Name])) Code :
Somme([montant assuré]-[montant]) WHERE (([montant assuré]-[montant]) PourChaque ([num compte]) <0) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com