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 :

Calculer nombre valeurs Null ou vides dans 1 colonne


Sujet :

Webi

  1. #1
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut Calculer nombre valeurs Null ou vides dans 1 colonne
    Bonjour,
    Quelqu'un connait-il la formule pour calculer le nombre de valeurs vides ou nulles d'une colonne ?
    J'ai regardé ce post :
    http://www.forumtopics.com/busobj/vi...c.php?p=779321
    mais je ne vois pas comment appliquer ça à mon cas (et mon niveau d'anglais aide pas trop non plus )
    Merci bcp

  2. #2
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    Bon, en fait sur le Post cité précédemment, je bloquais à cause de la présence de :
    dans la formule. Mais je pense que c'est une erreur de frappe, et que c'est plutôt :
    Donc j'ai appliqué la formule à mon cas, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(Nombre([CHAMPS];InclureVide)-Nombre([CHAMPS])+(Nombre([CHAMPS](EstNul([CHAMPS])))))
    Mais au lieu d'obtenir 4 (qui est mon total de valeur CHAMPS vide), j'obtiens 1 ??!!
    Une idée de pourquoi ça marche pas ?

  3. #3
    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
    A mon avis faut faire simple :

    -Créer un flag Fl_Nul -Créer une variable Nb_Nul

  4. #4
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    Ok, merci bcp ruru9
    Dès que la connexion Intranet de l'entreprise refonctionne, je test ça

  5. #5
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    Donc, j'ai testé.
    le champs en question est une date de création (renseignée ou non donc).
    J'ai créé une 1ère variable DateAbs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =EstNul([Date Création])
    Ensuite, j'ai créé ma 2nde variable TotDateAbs :
    Mais j'obtiens un #ERREUR en résultat ?!

    Je précise que j'ai créé 2 variables (indicateur). Alors que tu dis qu'il faut créé 1 Flag et 1 variable ?
    Désolé, mais je vois pas comment créer un Flag ?

  6. #6
    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
    Essai avec la variable DateAbs en type dimension et non indicateur. Ca se modifie dans Données/Variables/Qualification.
    Ton champs date est lui aussi normalement de type dimension.

  7. #7
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    J'ai bien changé ma variable DateAbs en dimension (effectivement, le champs Date étant lui aussi une dimension, c'est plus logique )
    Par contre, je n'ai pas pu changer l'autre variable TotDateAbs en Dimension. Elle reste en indicateur (sans doute parce qu'elle utilise la fonction d'agrégat "SOMME", non ? )
    En tout cas, le résultat est malheureusement toujours le même : #ERREUR
    (Je précise que lorsque "j'intègre" ma variable DateAbs dans le tableau, je peux voir qu'elle retourne bien :
    - 0 quand la Date est renseignée
    - 1 quand la Date est non renseignée )

  8. #8
    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
    Essai peut être pour TotDateAbs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Somme([DateAbs])Dans[DateCreation]

  9. #9
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    J'ai essayé ta formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Somme([DateAbs]) Dans ([DateCreation])
    (je précise que j'ai rajouté des parenthèses autour de
    sinon il ne me validait pas la formule
    malgré tout : résultat toujours à #ERREUR

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 364
    Points : 551
    Points
    551
    Par défaut
    Bonjour,

    Pour ce que j'ai expérimenté il y a longtemps, EstNul() renvoie un Booléen qui ne peut pas s'additionner.

    Si tu avais un problème de contexte, je crois que tu verrais #VALEURMULTI comme erreur.

    J'essaierai un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Somme(Si(EstNul([Date Création]);1;0))
    Et si tu as toujours une erreur, il faudra nous en dire un peu plus sur les autres colonnes de ton tableau qu'on voie pourquoi l'agrégation plante.

    Cordialement,

  11. #11
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    Merci de ton aide dlra_
    j'ai bien testé ta formule, et bon point, j'obtiens maintenant une valeur numérique : 7
    Par contre, je n'avais que 4 champs vides ou null dans ma colonne Date Création.
    Mais pour tester, j'ai supprimé les 2 autres colonnes qui étaient affichées dans le rapport pour ne garder que la colonne Date Création...et là je n'ai plus qu'une seule ligne Vide ???
    (Le résultat reste quant à lui à 7)
    Donc, je pense que le résultat issu de ta formule est bon mais que le problème vient du fait qu'il ne m'affiche pas toutes les lignes...et là, j'ignore pourquoi
    (Je précise que je suis newbie sur WebI )

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 364
    Points : 551
    Points
    551
    Par défaut
    Bonjour,

    Probablement parce que dans les résultats de ta requête, tu as 7 lignes qui ont une date de création vide.

    Au début de la discussion tu as précisé que date de création était une dimension.
    Puis au fil des échanges, tu l'as changée en indicateur (fonction somme()).

    Je suis arrivé à peu près par là.

    La règle de base par défaut de BO est que :

    Les dimensions présentées dans un tableau sont regroupées. Il n'y a pas de doublon de l'ensemble des dimensions d'une ligne à l'autre.
    Les indicateurs affichés sont agrégés, le plus souvent la fonction d'agrégation fournie par l'univers est la somme sauf si tu crées ta propre formule / variable.

    Dans ton cas, pour obtenir un nombre de dates vides variable en fonction des colonnes affichées, tu pourrais créer une variable de type dimension :

    [DateVide] = Si(EstNul([Date Création]);1;0)

    Eventuellement, tu peux calculer un total en pied de tableau :

    =Somme([Date Vide])

    Et si tu veux rajouter des opérateurs de contexte en pied de tableau pour avoir le nombre de date vides en fonction de divers niveaux de regroupement :

    =Somme([Date Vide] Dans([Date Creation] ;
    [liste des dimensions de détail que tu veux.]))

    Si tu ne mets pas [Date Creation] dans le contexte tu auras des #VALEURMULTI.


    Cordialement,

  13. #13
    Membre habitué Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Points : 180
    Points
    180
    Par défaut
    [Posté avant de voir ton dernier msg dlra_]
    Ok, c'est bon, je viens de trouver le pourquoi du comment
    En fait, dans ma requête, j'avais pas mal de champs, dont 1 champs qui permet d'identifier chaque "mouvement" de flux.
    Je m'explique :
    - grosso modo, je dois récupérer des flux, pour lesquels je dois analyser plusieurs champs, et surtout le %age de ces champs qui ne sont pas renseignés.
    Je dois donc extraire les flux (ID_Flux) et les champs à analyser (Date Création par exemple).
    Mais comme je ne connais pas encore les infos Métier de l'entreprise ("auto-formation" ), j'ai extrait par la même occasion quelques champs qui me semblaient opportun (à tort) d'extraire aussi.
    Dont 1 champs (ID_Mvt_Interne) qui permet d'identifier chaque action effectuée en interne sur les flux.
    Ce qui donne, lorsque j'affiche tous mes champs dans le tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ID_Flux        Date Création       ID_Mvt_Interne
    1                                          1 
    2                                          2
    2                                          3
    3                                          4 
    3                                          5
    4                                          6
    4                                          7 
    5               12/08/2013                 8
    6               17/09/2013                 9
    ...
    Ce qui fait qu'il a "doublonné" les enreg. dont l'ID_Flux = 2,3 et 4. Voilà pourquoi j'obtiens 7 au lieu de 4 pour le nombre de Date Création
    En supprimant le champs ID_Mvt_Interne de ma requête, j'obtiens bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ID_Flux        Date Création      
    1 
    2                                          
    3                                          
    4                                           
    5               12/08/2013            
    6               17/09/2013            
    ...
    Merci beaucoup dlra_
    (et merci aussi ruru9 )
    [PS : je vais me pencher sur ce que tu as mis en dernier dlra_ : concernant les dimensions/indicateurs et agrégation car je me rends bien compte que ça m'handicape pas mal ]

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 364
    Points : 551
    Points
    551
    Par défaut
    A ton service !!!

    Et forcément, l'autoformation c'est toujours plus long et pénible.

    Bon courage.

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

Discussions similaires

  1. [XL-2003] calcule le nombre de ligne non vide dans une colonne donnée
    Par aefmaaradji dans le forum Excel
    Réponses: 2
    Dernier message: 27/07/2010, 15h08
  2. Afficher une ligne null ou vide dans un champ
    Par axamen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 12/03/2008, 18h30
  3. Réponses: 5
    Dernier message: 22/02/2008, 19h34
  4. Problème champs calculés et valeur null
    Par markintell dans le forum Access
    Réponses: 18
    Dernier message: 10/01/2006, 18h14
  5. Réponses: 7
    Dernier message: 18/05/2005, 15h09

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