IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Webi Discussion :

#VALEURMULTI dans BO V3.1


Sujet :

Webi

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    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

  2. #2
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Bonjour,

    Essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Merci j'avais pas encore essayé
    mais ça ne marche malheureusement toujours pas

  4. #4
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Il t'affiche quoi?
    J'ai zappé que tu le voulais par pays
    essaye ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    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

  6. #6
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Je ne suis pas loin du coup
    Ca devrait être mieux avec ca je pense:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Citation Envoyé par jenny51 Voir le message
    Somme((([montant_assure]-Somme([montant] Dans ([compte])) Dans ([compte]))) Dans([client]))
    Essaye simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    =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 #

  10. #10
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    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

  11. #11
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    J'ai retiré ma somme du début et mis une somme juste après le Alors mais j'ai toujours mon #VALEURMULTI

  12. #12
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    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

  13. #13
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =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

  14. #14
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    #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 ?

  15. #15
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Non, pas de raison que ca soit impossible puisque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  16. #16
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    bon je m'y remet alors

    beaucoup pour ton aide en tout cas

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2008
    Messages : 259
    Points : 338
    Points
    338
    Par défaut
    Bonjour et bonne année à tous,

    Je te propose cette formule ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Somme([montant assuré]-[montant]) Where (([montant assuré]-[montant]) PourChaque ([num compte]) <0)
    Cela donne le tableau suivant :
    Images attachées Images attachées

  18. #18
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    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

  19. #19
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    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

  20. #20
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Celle que j'avais faite à partir de nos essais donne ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    Somme([montant assuré]-[montant]) WHERE (([montant assuré]-[montant]) PourChaque ([num compte]) <0)
    voilà

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. #VALEURMULTI dans un tableau
    Par etu_multi dans le forum Webi
    Réponses: 20
    Dernier message: 25/09/2012, 17h59
  2. [VxiR2] Décomposer une valeurmulti dans un titre
    Par Burt67 dans le forum Webi
    Réponses: 2
    Dernier message: 13/04/2011, 16h12
  3. Erreur VALEURMULTI dans requêtes combinées
    Par TarsemGau dans le forum Webi
    Réponses: 13
    Dernier message: 30/03/2011, 20h24
  4. [VxiR2] Erreur #VALEURMULTI dans un tableau croisé
    Par fguin dans le forum Webi
    Réponses: 5
    Dernier message: 09/09/2009, 15h03
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo