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

Discussion :

Calculer des sous totaux dans un tableau croisé dynamique [DeskI V5-V6]

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut Calculer des sous totaux dans un tableau croisé dynamique
    Bonjour à tous,

    En préliminaire, j'ai mis comme version DESKI v5 v6, mais en fait je n'arrive pas à savoir laquelle je possède. Il s'agit de la version incluse avec la suite SAGE et qui s'appelle SAGE Edition Pilotée (v.5.1.9). J'espère que cela ne va pas trop compliquer les choses, et si quelqu'un sait comment identifier le programme (deski/webi) je suis preneur

    Voici mon problème :

    Je dois réaliser pour mon entreprise une transition de EXCEL vers BO des états financiers (pour le compte de résultat) : un tableau avec les comptes généraux en lignes et les comptes analytiques en colonnes. Après avoir importé les données, bidouillé, j'arrive à un tableau qui ressemble à celui inséré en pièce jointe (mais en beaucoup plus gros).

    Ce que je cherche à faire est effectuer des calculs entre les différentes sommes des montants des sections de mon tableau. Par exemple, la somme des sections produits CA et droits d'auteurs, ou la différence entre produits CA et Honoraires etc.

    J'ai tenté d'utiliser les formules de somme en fonction des postes mais je reçois des messages d'erreur à chaque essai. Voici quelques exemples de formules que j'ai voulu essayer :

    =Somme(<Montant(Requête 1 avec DPS100C)>) Où <N° Compte Général>("706200", "706205", "706210", "706240", "706270", "706275", "706300", "706305", "706335", "706420")
    Essai pour simplement sommer les montants de la première section, même si le bouton somme le fait tout seul. C'est juste pour comprendre comment ca marche.

    =Somme(<Montant(Requête 1 avec DPS100C)>) PourChaque <N° Compte Général> Entre ("706200", "706420")
    Autre essai avec une syntaxe différente.

    Il s'agit à chaque fois de calculer la somme dans une section, mais ce que je veux faire est calculer des sommes/différences entre les sections elles-mêmes (mais dans la mesure où je ne parviens même pas à le faire au sein des sections elles-mêmes je commence par là. Quelqu'un sait-il ce que je devrais faire ?


    PS1 : La capture d'écran présente une partie du tableau où il n'y a pas de données, mais celui ci en comporte bien en réalité. Il s'agit juste d'une question de cadrage car le tableau est un vrai monstre en réalité (pour l'instant )

    PS2 : Quelqu'un sait-il aussi comment faire en sorte d'afficher 0 là où il n'y a que des cases vides. J'imagine que c'est avec des booléens, mais je ne suis pas encore à l'aise avec BO .
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Par défaut
    Bonjour,

    Alors, essayons de répondre à toutes ces questions :
    • Pour la version de BO, vu qu'il est fait mention de "Edition pilotée 5.1.9", je dirais qu'il s'agit simplement de la version 5.1.9 de BO.
    • Pour ce qui est de DeskI / WebI. DeskI est en fait le client "lourd" de BO, tandis que WebI est une version "webisée" passant par un serveur.
    • Ensuite, pour tes sommes :
      =Somme(<Montant(Requête 1 avec DPS100C)>) Où <N° Compte Général>("706200", "706205", "706210", "706240", "706270", "706275", "706300", "706305", "706335", "706420")
      Celle-ci ne peut pas fonctionner car l'opérateur "Où" n'accepte que l'opérande "=".
      La bonne formule à utiliser (et en plus simple) serait :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      =Somme(<Montant(Requête 1 avec DPS100C)>)(<Libellé Compte Général>="Produits CA")
    • Pour faire tes opérations, tu peux te servir de la formule précédente. Par exemple, si tu veux faire la différence entre le compte "Produits CA" et "Honoraires", il faudrait par exemple ajouter une ligne sous le total des Honoraires, en mettant le libellé que tu veux en en-tête de ligne. Pour la formule ça donnerait ça :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      =(Somme(<Montant(Requête 1 avec DPS100C)>)(<Libellé Compte Général>="Produits CA"))-(Somme(<Montant(Requête 1 avec DPS100C)>)(<Libellé Compte Général>="Honoraires"))
    • Enfin, pour placer des 0 dans tes cellules, le plus simple est de passer par le formatage :
      • Clique droit sur une cellule puis "Format de Cellule".
      • Dans l'onglet "Nombre", sélectionner "Numérique". (ou monétaire)
      • Choisir le format désiré ("0" : sans décimale, "0,00" avec deux décimales,"# ##0" : avec séparateur de milliers, etc...)
      • Dans la case de saisie "Indéfini", saisir 0.
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut

    Merci et bravo pour cette réponse rapide et complète c'est vraiment sympa de ta part

    Tu me tires une épine du pied, je vais pouvoir progresser dans mon travail.

    ====>

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    Je rajoute juste une petite question qui traite du même sujet et qui me bloque également sur le même fichier que ci-dessus :

    Lorsque j'essaye d'appliquer les formules (que je comprends mieux d'ailleurs grâce à TomDuBouchon ) je ne voudrais le faire que sur une seule ligne. Il s'agit de faire un tableau qui se lit de haut en bas avec des sous totaux insérés de temps en temps. Par exemple, une ligne de sous total "Total Frais" etc qui regroupe plusieurs sections (du style Total CA, Honoraires etc).

    Lorsque je tente de faire ca sur une ligne en sélectionnant une ligne ou une case de la ligne, cela a pour effet de sélectionner toutes les cases du tableau.
    J'ai également tenté de créer des lignes au dessus/en dessous : rien à faire, tout est lié et le programme crée des lignes à chaque rupture que j'ai insérée dans le tableau au lieu de n'en créer qu'une seule à l'endroit demandé.

    Quelqu'un sait-il s'il est possible et comment je devrais faire pour créer des lignes (une seule à la fois) et agir sur ces mêmes lignes (une seule à la fois encore) pour créer ces sous totaux ?

    Merci d'avance

  5. #5
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Par défaut
    Comme tu as pu le constater, BO va générer une ligne pour chaque rupture de ton tableau. Et ça malheureusement tu ne vas pas pouvoir y faire grand chose, car c'est une instruction native dans BO.

    La seule chose que je peux te conseiller, c'est de faire un clic droit puis calcul > Somme sur l'une des cases de ton tableau. Normalement, en plus d'une ligne créée en dessous de chaque rupture, BO doit générer une ligne tout en bas du tableau qui est en fait la somme globale.
    En sélectionnant cette ligne, tu peux rajouter autant de lignes que tu veux qui seront indépendantes entre elles. Je te conseille donc plutôt de faire tes totaux de cette façon.
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    Merci pour ta réponse.

    Pour que le tableau soit lisible, il est en fait nécessaire que les soldes soient disposés le long du tableau. J'ai donc pensé faire plusieurs tableaux différents et ajouter des lignes comme tu me l'as conseillé pour faire mes sous totaux et soldes intermédiaires. Le souci est que si je tente de faire ça avec différents tableaux, ils ne sont pas des mêmes dimensions car BO refuse de me mettre les sections analytiques (les colonnes) qui sont vides (edit : cf. la pièce jointe). Est-il possible de les faire apparaître pour homogénéiser mes tableaux afin qu'ils soient tous de la même largeur ?

    Par ailleurs, suis-je obligé de faire une requête par tableau comme je l'ai fait ici ?

    PS : quelqu'un a-t-il un bouquin à me conseiller sur BO car ce programme semble bien parti pour être mon meilleur ami de l'été !
    Images attachées Images attachées  

  7. #7
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Par défaut
    Alors :
    • Pour faire apparaître les colonnes vides, il y a un moyen. Il faut créer une nouvelle requête dite de référence avec tes dimensions utilisées en colonne et en ligne de telle sorte que toutes les possibilités soient présentes dans le résultat de cette requête.
      De là, il faut lier les dimensions entre ta requête et ta requête de référence.
      Enfin, dans ton tableau, il faut placer en colonne et en ligne les dimensions de ta requête de référence, et dans le corps l'indicateur de ta requête initiale.
    • Tu n'es pas obligé de faire une requête par tableau. Il vaut faire une seule requête qui ramène toutes les valeurs, et ensuite filtrer le tableau pour que n'apparaissent que les données désirées.
    • Pour le bouquin je ne sais pas... Par contre, tu as toutes les documentations BO disponibles ici (très mal organisées c'est vrai)
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    Merci beaucoup !!

    J'essaye tout ça immédiatement.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    Et zut, je suis malheureusement encore et toujours coincé

    Tout ce que tu m'as dit est très clair et je pense avoir bien compris. Les dimensions sont effectivement bien liées (elles se lient toutes seules apparemment). J'ai créé comme tu me l'as conseillé un autre fournisseur de données qui me fait une requête sur mes deux dimensions (sans l'indicateur de montant) et sans conditions pour être certain de tout avoir.

    J'ai ensuite fait un tableau avec mes deux dimensions (de ma requête de référence) en lignes et en colonnes et l'indicateur de ma seconde requête en corps du tableau.

    Effectivement, j'ai bien des colonnes vides qui s'affichent quand je fais différents tableaux ainsi en utilisant les filtres à partir du gros tableau. Le soucis est que j'ai toujours des différences entre les différents tableaux : ils n'affichent pas le même nombre de colonnes (cf. photo jointe).

    Qu'est-ce qui peut bien ne pas aller dans ma démarche ?

    Merci encore pour le coup de main
    Images attachées Images attachées  

  10. #10
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Par défaut
    Si tu regardes ta requête 1 dans le fournisseur de données, onglet résultat, as-tu bien la valeur 11100 en face du compte général 601150 ?
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    Non il n'y est pas.

  12. #12
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Par défaut
    Ah... Alors là ça devient plus problématique...
    Le mieux dans ce cas serait de passer par du SQL à la carte...

    La requête ressemblerait du coup à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT
    TABLE1.COMPTEGENERAL, 
    (SELECT DISTINCT TABLE2.COMPTEANALYTIQUE FROM TABLE2)
    FROM TABLE 1
    Et le fournisseur de données généré doit remplacer ta requête de référence.
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    Merci beaucoup.

    Je suis allé demander aux services info de ma boîte et ca fonctionne. Pour info, la requête utilisée est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    select distinct t2.EA_CANUM as Section_analytique,Montant,t1.EA_CGNUM as NumCompteGeneral
    from DP_ECRITA t2
    left join
    (
    select dbo.DP_ECRITA.EA_CANUM,
    sum(CASE dbo.DP_ECRITA.EA_SENS
    WHEN 'Débit' THEN -dbo.DP_ECRITA.EA_EAMONTANT
    WHEN 'Crédit' THEN dbo.DP_ECRITA.EA_EAMONTANT
    ELSE 'ERREUR. Contacter votre revendeur.'
    END)as Montant,dbo.DP_ECRITA.EA_CGNUM,dbo.DP_ECRITA.EA_NANALYTIQUE
    from DP_ECRITA
    where dbo.DP_ECRITA.EA_CGNUM between '708800' AND '791000'
    GROUP BY dbo.DP_ECRITA.EA_CANUM,dbo.DP_ECRITA.EA_CGNUM,dbo.DP_ECRITA.EA_NANALYTIQUE
    )
    t1 on t1.EA_CANUM = t2.EA_CANUM
    Où la variable est le numéro de compte.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    Ha, moi qui me disais que c'était trop facile !! Déjà de retour .

    J'ai fait plein de requêtes SQL pour appeler mes différents tableaux. Tout fonctionne, j'ai de superbes tableaux comme je le voulais, tous alignés, beaux etc. Et nous revoici à la question initiale : les sous totaux.

    Tout heureux, j'insère de magnifiques formules de somme et... cela ne fonctionne pas. Il semble que entre différents tableaux, le programme ne fait plus la différence entre les colonnes. Ainsi si je lui demande la somme des colonnes du tableau 1, il me sort la somme de toutes les lignes et colonnes du tableau 1 dans chacune des cases.

    Comment puis-je faire pour n'avoir à chaque fois que la somme de la colonne 1 ,2,3... dans mon tableau intermédiaire (en orange). Par exemple pour sommer les deux premiers tableaux et avoir les sommes par colonnes dans le tableau orange?


    PS : Il en faut du temps a se sur BO pour un truc qui prendrait genre 5 secondes sur Excel
    Images attachées Images attachées  

  15. #15
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Par défaut
    De quoi est constitué ton tableau des soldes ?

    Essaies simplement de mettre <montants> et pas Somme(<montants>).

    Autre chose, je trouve qu'il y a beaucoup de requêtes dans ton rapport... Etait-ce vraiment nécessaire ?
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    En fait il s'agira de plusieurs tableaux. L'un par exemple sera la somme de tous les frais. Un autre sera le pourcentage de tels frais par rapport au Chiffre d'affaires par exemple.

    Lorsque je procède comme tu me le conseilles en mettant juste <montant> j'obtiens bien ce qu'il faut pour la requête 1. Mais j'obtiens toujours les sommes totales pour les autres montants obtenus avec d'autres requêtes.

    J'ai effectivement fait beaucoup de requêtes (une par tableau). La raison est que si je n'en faisais qu'une, et qu'ensuite je filtrais le tableau, cela me faisait sauter des colonnes vides et le tableau général (l'ensemble de tous les tableaux) n'était plus homogène.

  17. #17
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Par défaut
    OK, as-tu bien vérifié que les dimensions communes de tes différentes requêtes étaient bien liées dans le gestionnaire de données ?
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    Bien vu.

    Je viens de les lier. Ca a l'air de fonctionner très bien ! Ca m'a même réglé un autre problème dont je venais de me rendre compte (un tri commun aux colonnes de chaque tableau qui ne fonctionnait que sur le premier également. Ca marche bien mieux ainsi.

    Merci beaucoup.

    PS : t'as songé à te faire embaucher par SAP ?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/04/2015, 21h44
  2. Réponses: 1
    Dernier message: 29/03/2013, 13h40
  3. Réponses: 2
    Dernier message: 17/08/2011, 17h58
  4. Réponses: 1
    Dernier message: 28/11/2009, 19h20
  5. [AC-2002] Comment calculer des sous-totaux dans une requete croisee
    Par babinou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/08/2009, 09h43

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