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 :

Problème calcul variation tableau croisé dynamique


Sujet :

Webi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Problème calcul variation tableau croisé dynamique
    Bonjour,

    Besoin d'un petit coup de pouce car je sèche....

    Voilà le problème:

    J'ai une invite utilisateur :

    Choisir Mois Min : 02/2008 (dans cet exemple)
    Choisir Mois Max : 04/2008 (dans cet exemple)

    J'obtiens alors ce tableau dynamique:

    02/2008 03/2008 04/2008 Var=(Mois max M - Mois M-1)/Mois M-1
    X Montant Montant Montant % (ici: variation( (04/2008)/(03/2008))
    y Montant Montant Montant %


    Je cherche à intégrer la variable Var qui prend en compte une variation de montant entre mois max et mois max-1 de façon dynamique.

    Je sais que je peux récupérer Mois Max de l'invite utilisateur via la fonction réponse utilisateur. Mais comment mettre en place la récupération de Max mois -1??

    Je pourrais résoudre ce problème en rajoutant un invite sur le Mois M-1 mais j'aimerai le faire de manière plus propre....

    Voilà j'attends vos conseils et vos idées.

    Pour info je bosse sur WEBI 12.0 et j'ai la possibilité de bosser en DESKI 12.0 si il y a vraiment une necessité.

  2. #2
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    Bonjour,
    Quand tu récupères les données du mois Max et moi Min je suppose que tu mets ça :
    Mon objet entre "invite_Mois_Mix" et invite_Mois_Max
    histoire de récuprer toutes les données de cette période...

    Ensuite, dans ton tableau croisé il te suffit de rajouter la fonction précedent sur les montants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
              Date au mois Min|Date au mois M-2|Date au mois M-1|Date au mois Max
    Client 1    Montant          Montant               Montant               Montant
    Montant= mon indacteur-precedent(indicateurs). Il faut voir les valeurs null, negatives...
    Je n'ai pas BO sous la main je peux pas tester sinon je t'invite à faire un tour

    ici
    Bon courage

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Rebonjour,

    Tu suppose très bien au niveau de mon invite utilisateur :

    Mon objet entre "invite_Mois_Min" et invite_Mois_Max

    Je récupère alors tous les montants pour chaque mois compris dans cet interval de dates.

    Si je rajoute la fonction précédent sur les montants j'obtiens bien la variation du montant mais pour tous les mois...... Or mois je veux à chaque fois faire ce calcul essentiellement sur les 2 derniers mois. En fait ma variable ne doit pas être dans le tableau dynamique croisé mais à coté.

    Exemple concret:

    Mois entre 200802 et 200804

    Code :


    200802|Date au mois M-2|Date au mois M-1|Date au mois Max
    Client 1 Montant Montant Montant Montant



    ici
    Bon courage

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Rebonjour,

    Tu suppose très bien au niveau de mon invite utilisateur :

    Mon objet entre "invite_Mois_Min" et invite_Mois_Max

    Je récupère alors tous les montants pour chaque mois compris dans cet interval de dates.

    Si je rajoute la fonction précédent sur les montants j'obtiens bien la variation du montant mais pour tous les mois...... Or mois je veux à chaque fois faire ce calcul essentiellement sur les 2 derniers mois. En fait ma variable ne doit pas être dans le tableau dynamique croisé mais à coté je pense....

    Exemple concret:

    Mois entre 200802 et 200804

    Tableau dynamique croisé Colonne variable
    200802 200803 200804 Montant(M- M-1)/Montant M-1
    Client 1 Montant Montant Montant Variation Montant 200804 200803
    client 2 Montant Montant Montant Pour cette exemple
    .
    .
    .
    Total

    Exemple concret 2:

    Mois entre 200802 et 200805


    Tableau dynamique Colonne variable
    200802 200803 200804 Montant(M- M-1)/Montant M-1
    Client 1 Montant Montant Montant Variation Montant 200805 200804
    client 2 Montant Montant Montant Pour cette exemple
    .
    .
    .
    Total

    En fait le problème résulte sur le fait que j'ai besoin des données du tableaux dynamique croisé mais essentiellement sur Mois MAX et Mois MAX-1.....

    Des idées?

  5. #5
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    Comme ça je vois claire!
    J'ai une question, faut-il que la variation soit entre les deux derniers mois genre M et M-1 même s'il n' y a pas données pour le mois M-1?
    On supposant que ton objet est periodeX , même s'il n' y a pas de periode X mois M-1 la variation retournera le montant du Mois M?

    Dans ce cas il te suffit juste de créer une variable dans la quelle tu mets endate((fournisseur_de_donnée(ton objet),ta réponse utilisateur pour le Max),'YYYYMM') par exemple. Ensuite, deuxiéme variable= variable1-1.
    Normalement comme c'est des dates la fonction -1 va te donner le mois précédent donc janvier 2008 donnera decembre 2007!

    Ton montant sera égale à Montant où ton objet=date variable 1-
    montant où ton objet=date variable 1.

    la syntaxe est à revoir ...

    Sinon si tu veux une solution plus complète il te faudra travailler sur l'univers .

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Concrètement voilà ce que j'ai pour le moment. Je pense que se sera plus clair:

    Nom : tab_BO.JPG
Affichages : 515
Taille : 79,0 Ko

    Je t'avoue que je viens de lire tes messages et je n'ai pas très bien compris.


    Merci pour ton aide en attendant.

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bien évidemment la plage de données des tableaux dépends de la réponse a l'invite utilisateur suivante:

    soit : Objet (Mois de prélèvement) "entre le: " <objet> "et le: " <objet>
    Cet objet dimension est l'objet de l'axe des abscisses de mon tableau dynamique croisé.

    L'objet client correspond à l'axe des ordonnées du tableau dynamique croisé. L'objet montant du tableau dynamique croisé affiche un montant en fonction des objets dimensions.

  8. #8
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    Je te propose ça: (voir l'image jointe)

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    ok j'y avais déjà bien pensé...mais variable Mois -1 = variable mois max -1 sa ne marche pas chez moi.....

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    cela vient peut être de ma variable mois Max:

    la voilà:

    Variable Mois Max=RéponseUtilisateur([ChA].[APX_MOIS DE PRELEVEMENT];"et le :")

  11. #11
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    Oui maintenant ta variable est une chaine de caractères, il faut la convertir en date, je crois que la fonction est Endate avec le format YYYYMM si tu veux! ensuite il faudra trouver une fonction qui ajoute des mois tu rajoute donc -1, pour eviter les surprise de début d'année (si tu mets ta variable -1 tout cours en janvier 2008 ça te donnera 00 2008! mais à tester peut être que BO est vraiment intelligent )
    En plus si tu veux faire une condition du genre date prélevement= ma variable X
    il faut que les deux cotés soient du même format (YYYYMMDD) ou (YYYYMM) ou juste (MM) c'est à toi de voir...

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses . Effectivement à la base j'avais exactement raisonné comme vous.....
    Mais mon problème est l'ajout ou la soustraction d'1 mois.

  13. #13
    atb
    atb est déconnecté
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Autre

    Informations forums :
    Inscription : Novembre 2004
    Messages : 639
    Points : 929
    Points
    929
    Par défaut
    En temps pour moi ,
    Si tu es accès à l'univers en modification et si tu travail sous oracle tu peux toujours créer un objet de type information lié à date prélèvement:
    Add_months(date prélèvement,-1)

    Dans ton rapport tu utilise la fonction max pour récupérer les deux derniers mois
    var1=max date prélèvement
    var2=max date prélèvement -1

Discussions similaires

  1. Problème avec le tableau croisé dynamique
    Par aritas dans le forum QlikView
    Réponses: 2
    Dernier message: 25/04/2014, 10h50
  2. [E-03] cacher un champ calculé de Tableau croisé dynamique
    Par Access Newbie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/12/2008, 15h52
  3. Tableau croisé dynamique + champs calculés
    Par xave dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2006, 10h20
  4. Problème avec Excel et tableau croisé dynamique
    Par françois62 dans le forum VBScript
    Réponses: 9
    Dernier message: 19/11/2006, 22h17
  5. Réponses: 5
    Dernier message: 29/12/2005, 10h31

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