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 :

utilisation de la fonction ForEach ou Dans


Sujet :

Webi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut utilisation de la fonction ForEach ou Dans
    Bonjour à tous,

    Je fais appel au savoir-faire collectif de ce forum pour résoudre une situation sur BO XI.

    J'ai créé un tableau croisé avec en ligne les motifs d'absence et en colonne les dates et je souhaiterais afficher le nom des agents qui correspondent à ces 2 dimensions.

    J'ai utilisé la fonction suivante :
    =Concaténation([Absence].[Nom]+" ";[Absence].[Prenom])Dans([Absence].[Date];[Motif d'absence])
    ou
    =Concaténation([Absence].[Nom]+" ";[Absence].[Prenom])ForEach([Absence].[Date];[Motif d'absence])

    le résultat est le même c'est-à-dire que la valeur est bien renvoyée si il n'y a qu'un seul agent de concerné et sinon il m'affiche #VALEURMULTI.

    Existe t-il une solution pour afficher l'ensemble des valeurs qui correspondent à ces deux dimensions, par exemple l'ensemble des employés en congés maladie le 10/02/....

    Vous remerciant par avance.

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    Le problème dans le tableau que vous voulez faire est qu'il n'y a que des objets de type dimension (cube bleu)!! Où est votre objet de type indicateur (bille rose)??. Le corps d'un tableau croisé doit être un indicateur. Vous devez garder 3 dimensions :

    -Motif absence
    -Date
    -Nom prénom
    + Indicateur

    A mon sens, le mieux est de faire un tableau Motif,Nom prénom, Date, Indicateur Nb absences ou Motif, Nom prénom, Indicateur Nb absences si la date n'est pas une information essentielle (d'ailleurs à quoi correspond cette date? date de début de la période d'absence?). Avec après une Rupture au moins sur le motif.

    Et pour l'indicateur, il faut faire un compteur à partir de l'identifiant absence. Et attention l'opérateur de contexte Dans ne s'utilise qu'au sein d'une fonction agrégat (Min, Max, Somme, Moyenne, Nombre,...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nb absences = Nombre([Id_Absence])Dans[Motif absence],[Date],[Nom prénom]))

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juillet 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse.

    Mais en fait je ne souhaite pas avoir le nombre d'absent suivant le motif, la date et le nom mais la liste des absents par date et par motif d'absence.

    Je joins l'extraction Excel du tableau réalisé.
    JD-PLANNING-HEBDO2.xls

    Pour calculer le nombre d'absent j'avais utilisé la formule suivante :
    =Nombre(Concaténation([Absence].[Nom]+" ";[Absence].[Prenom])ForEach([Motif d'absence];[Absence].[Date]))

    Il est possible que les fonctions ForEach ou Dans ou même le type de tableau ne peuvent pas répondre à mon besoin et je suis preneur d'une autre solution.


    Vous remerciant par avance.

  4. #4
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Hello,

    Comme le dit ruru il faut un indicateur (boule rose) dans le corps du tableau !
    Sinon il faut faire cette concaténation dans l'univers (avec la fonction concat je crois dans Oracle) et non dans le document.

  5. #5
    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 : 346
    Points
    346
    Par défaut
    et en changeant les propriétés du tableau croisé pour cocher l'option : Eviter l'agrégation des doublons
    ça ne marche pas ?

  6. #6
    Membre expérimenté
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Points : 1 342
    Points
    1 342
    Par défaut
    Le truc c'est que dans BO on ne peut pas afficher plusieurs valeurs dans une même cellule, ce que tu veux faire avec les nom prénom.

    Au lieu de faire un tableau croisé, je te conseille de faire une section par date, ça change un peu la mise en forme de ton report, mais tu aura tes données.

    ou un tableau simple, horizontal avec toutes les infos comme le proposait ruru9, en faisant des ruptures sur les dates. Et si tu n'as que quelques motifs possibles, tu peux ajouter une ligne par motif manuellement à ton tableau et dans la cellule correspondante mettre une formule du type <nom>+<prénom> où (<motif>= "ton motif"), cela te fera un tableau croisé en aparence, mais il les données seront statiques pour les types de motifs

    dans ta section tu mets un tableau simple avec ton motif et le nom-prenom de l'absent...

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/05/2015, 10h52
  2. [Débutant] Utilisation de la fonction Matlab "imcrop" dans un programme Java
    Par ingeta dans le forum MATLAB
    Réponses: 0
    Dernier message: 08/04/2014, 18h46
  3. [AC-2010] Utilisation de la fonction d'écriture dans un fichier "Print"?
    Par BornToBe dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/06/2012, 18h00
  4. Réponses: 4
    Dernier message: 26/09/2011, 16h12
  5. Utilisation d'une fonction d'agregat dans la clause Where
    Par nicolasline dans le forum Designer
    Réponses: 2
    Dernier message: 15/02/2011, 22h56

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