|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 6 ![]() |
Bonjour,
J'ai un problème qui me fait m'arracher les cheveux. J'ai un tableau croisé qui peut contenir des cases vides (pas NULL, mais vides : pour ces critères la requête SQL ne renvoie aucune donnée). Je crée un alerteur sur la colonne, qui m'affiche les données sur un fond gris quand la valeur correspond à certains critères en ligne. Lorsqu'il tombe sur des cases vides, l'alerteur ne fonctionne pas et donc la case reste à blanc et vide. Comment faire pour que l'alerteur fonctionne même sur des cases vides ? Pour que çà soit plus clair, mon tableau ressemble à çà : .........|col1|col2|col3 ligne 1|..10.|..20| ligne 2|..11.|..21| ligne 3|..12.|..22| ligne 4|..13.|..23|..33 Mon alerteur doit afficher les cellules en gris lorsque le critère de la ligne 3 est vérifié. Il fonctionne bien sur les colonnes 1 et 2 mais pas sur la colonne 3. (Il n'y a pas de valeur renvoyée par la requête SQL qui vérifie les critères de la colonne 3 et de la ligne 3). J'espère avoir été assez clair et que quelqu'un pourra m'aider. Merci d'avance. |
|
|
00
|
|
|
#2 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 273 ![]() |
Bonjour,
A priori ta requête renvoie des null, car si elle renvoyait des valeurs vides, ton alerteur devrait fonctionner dessus (d'ailleurs, du vide sur du numérique Ce que je te conseille, c'est de créer une variable qui te remplacera tes valeurs nulles par 0 : Code :
=Si(EstNul(<indicateur>)) Alors 0 Sinon <indicateur>
__________________
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 ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 6 ![]() |
Merci de ta réponse rapide.
Non, çà ne fonctionne pas. J'aurais du préciser dans ma demande. Lorsque j'utilise la fonction EstNul() sur mon indicateur, la fonction ne renvoie rien, ni 0 ni 1. (En tout cas dans le cas de ces cases, car lorsque le champ est renseigné, j'ai bien une valeur de retour, à 0 ou 1 puisque j'ai aussi des cas où la valeur est à NULL, et là effectivement çà ne pose pas de problème). D'ailleurs, lorsque j'applique n'importe quelle fonction sur ces cases, je n'obtiens rien en retour. |
|
|
00
|
|
|
#4 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Ce phénomène est en fait expliqué :
Concrétement, un tableau croisé n'est que la transformation d'un tableau droit. Lorsque tu as ton tableau droit, tu n'as pas la présence des cases vides puisqu'elles n'existent pas dans ton indicateur pour les dimensions données. Lorsque tu passes à l'affichage en tableau croisé, BO comble les trous en mettant des cases vides ne contenant aucune valeur. Lorsque tu places ton alerteur, tu le places sur ton indicateur, mais celui ci n'est "détecté" que sur les cases en commun avec les cases de ton tableau droit. La logique voudrait donc que l'alerteur s'applique à la ligne pour que ca fonctionne dans ton tableau croisé, mais DeskI ne sait pas le faire à ma connaissance.
__________________
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 6 ![]() |
Merci pour l'explication, c'est bien ce dont je me doutais.
Par contre, il n'y a donc aucun moyen de résoudre mon "problème" ? |
|
|
00
|
|
|
#6 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 273 ![]() |
OK,
En fait la méthode que j'ai décrit devrait fonctionner si tu récupères tes informations via deux requêtes : Il faut que dans ta première requête tu ramènes tes libellés de ligne et colonne. C'est d'ailleurs ces objets que tu mettras dans ton tableau. Ensuite, il faut créer une seconde requête reprenant tous les éléments de ta requête actuelle. Il faudra ensuite lier les dimensions communes et placer seulement l'indicateur de cette requête dans ton tableau. Cela fait, BO générant un "cube" entre tes deux requêtes, il devrait te créer un null effectif pour les valeurs vides de ton indicateur.
__________________
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 ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 6 ![]() |
Ah, çà devient un peu plus technique pour moi là.
Je vais essayer et je vous tiens au courant. Mon autre problème est que mes lignes et mes colonnes sont nombreuses et sont déterminés à partir de plusieurs champs de la table. Cela risque de faire une grosse requête rien que pour récupérer les libellés. J'avoue que je n'ai jamais lié de dimensions, donc çà risque d'être compliqué, mais j'ai confiance je vais m'en sortir. Merci beaucoup en tout cas. |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : décembre 2009 Messages : 90 ![]() |
Bonjour,
"Lorsque tu passes à l'affichage en tableau croisé, BO comble les trous en mettant des cases vides ne contenant aucune valeur" C'est tout à fait ça Pas d'alerteur possible ni de filtre Plutôt que de laisser vide, je vais en format de cellule/propriété/indéfini et je tape par exemple "texte [Rouge]" Et malheureusement mais c'est logique dans l'alerteur il ne propose pas le texte en variable Cordialement |
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 6 ![]() |
Citation:
J'en suis donc à mon coup d'essai. Comme tu disais donc, j'ai créé un deuxième tableau qui contient tous mes libellés de ligne et de colonne. Les dimensions se sont liées automatiquement : Dans le gestionnaire de données, j'ai accès seulement au bouton Délier et non au bouton Lier à. Par contre, je ne sais pas (ou comprends pas) quoi faire ensuite. Peux-tu m'aider ? |
|
|
|
00
|
|
|
#10 |
![]() ![]() Thomas CochinConsultant en Business Intelligence Inscription : juin 2009 Messages : 3 273 ![]() |
OK, si les dimensions sont liées (même par défaut) c'est bon.
Il faut ensuite que dans ton tableau, tu utilises les libellés de ligne et de colonne de ta deuxième requête (celle qui ne contient que ça) Ensuite, tu places dans le corps de ton tableau la formule suivante, basée sur l'indicateur de ta première requête : Code :
=Si(EstNul(<indicateur>)) Alors 0 Sinon <indicateur>
__________________
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 ![]() Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP. |
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 6 ![]() |
Yes !!!!
Ca marche ! Un énorme merci ! C'est tout de même bête que l'outil ne puisse pas gérer çà de base. Encore merci ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com