Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Webi
Webi Forum d'entraide Webi (client léger)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2011, 11h13   #1
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
Par défaut #VALEURMULTI dans BO V3.1

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
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 17h45   #2
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Bonjour,

Essaye ca :

Code :
1
2
Si ([montant_assure]-somme([montant] dans ([compte])) dans ([compte]) <0) 
Alors (-1*([montant_assure]-somme([montant] dans ([compte])) dans ([compte]))
Bon courage
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 17h57   #3
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
Merci j'avais pas encore essayé
mais ça ne marche malheureusement toujours pas
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 17h59   #4
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Il t'affiche quoi?
J'ai zappé que tu le voulais par pays
essaye ca :
Code :
1
2
Si somme([montant_assure]-somme([montant] dans ([compte])) dans ([Pays]) <0) 
Alors (-1*somme([montant_assure]-somme([montant] dans ([compte])) dans ([pays]))
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 18h20   #5
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
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
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 18h36   #6
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Je ne suis pas loin du coup
Ca devrait être mieux avec ca je pense:
Code :
1
2
Si somme(([montant_assure]-somme([montant] dans ([compte])) dans ([compte]))) dans ([Pays]) <0) 
Alors (-1*somme(([montant_assure]-somme([montant] dans ([compte])) dans ([compte]))) dans ([Pays]))
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 09h39   #7
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
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]))
quand je fais ça il me prend bien les valeurs de [montant] 1 par 1 mais il additionne les [montant_assure] par 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
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 09h49   #8
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Citation:
Envoyé par jenny51 Voir le message
Somme((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client]))
Essaye simplement :

Code :
Somme((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client];[compte]))
Et pense aux balises [CODE] : # dans la barre
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 10h06   #9
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
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]))
mais il me remet #VALEURMULTI... j'ai zappé quelque chose ?
désolée j'avais pas vu le #
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 10h17   #10
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
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.
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 10h24   #11
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
J'ai retiré ma somme du début et mis une somme juste après le Alors mais j'ai toujours mon #VALEURMULTI
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 10h29   #12
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
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
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 11h01   #13
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
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])
Ca serait plus facile si je pouvais faire les tests

Je pense que tu vas finir par trouver en bidouillant les contextes...
La formule devient de plus en plus indigeste, c'est dommage
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 11h23   #14
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
#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 ?
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 11h39   #15
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Non, pas de raison que ca soit impossible puisque
Code :
Somme((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client];[compte]))
te renvoie le bon résultat.
Après il faut s'amuser avec le si
Bon courage !
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 11h40   #16
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
bon je m'y remet alors

beaucoup pour ton aide en tout cas
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 11h05   #17
Membre actif
 
Inscription : février 2008
Messages : 129
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : février 2008
Messages : 129
Points : 157
Points : 157
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)
Cela donne le tableau suivant :
Fichiers attachés
Type de fichier : pdf contexte.pdf (37,3 Ko, 10 affichages)
isalille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 09h27   #18
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
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 ! Merci beaucoup j'avais jamais utilisé le where pour un cas dans celui là maintenant je le saurais
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 10h49   #19
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Content que ta formule fonctionne.
Tu peux la poster juste par curiosité pour voir ce qu'elle donne ?
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 11h11   #20
Invité de passage
 
Jennifer
Inscription : janvier 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Jennifer

Informations forums :
Inscription : janvier 2011
Messages : 15
Points : 3
Points : 3
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]))
mais ce n'est pas très lisible et j'ai un cas particulier qui ne fonctionne pas alors j'ai repris telle quelle la formule de Isalille qui fonctionne même sur mon cas particulier
Code :
Somme([montant assuré]-[montant]) WHERE (([montant assuré]-[montant]) PourChaque ([num compte]) <0)
voilà
jenny51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h22.


 
 
 
 
Partenaires

Hébergement Web