BASE DE CONNAISSANCES

Création des champs d'infobulles qui ne s'affichent pas pour les valeurs null ou zéro


Date de publication : 04 Feb 2015
Date de dernière modification : 20 Jul 2023

Question

Comment masquer les champs d'infobulle comportant des valeurs 0 ou null.

Environnement

Tableau Desktop

Réponse

Étape 1 : Créer un champ calculé à utiliser comme champ d'infobulle

  1. Sélectionnez Analyse > Créer un champ calculé
  2. Dans la boîte de dialogue Créer un champ calculé, procédez comme suit, puis cliquez sur OK :
  • Nommez le champ.Dans l'exemple, ce champ est appelé « Infobulle personnalisé pour <nom du champ> »
  • Créez un calcul du type suivant :
    IF ZN(AGG()) = 0
    THEN ""
    ELSE "" + STR(AGG()) + CHAR(10)
    END
    
  • Un exemple peut se présenter comme la formule suivante si vous utilisez la source de données Sample - Superstore :
    IF ZN(SUM([Sales])) = 0
    THEN ""
    ELSE "Sales: " + STR(SUM([Sales])) + CHAR(10)
    END
    
  • Cette logique commence par convertir toutes les valeurs null en zéro, et si la valeur est égale à zéro, elle retourne une chaîne vide. Sinon, elle renvoie une valeur de chaîne de notre infobulle.
  • Assurez-vous d'associer l'agrégation à ce qui était utilisé dans la vue.
  • Char(10) est une nouvelle ligne, ce qui sera utile dans notre prochaine étape pour rationaliser l'infobulle autant que possible.  Remarque : s'il s'agit de la fin de l'infobulle, Char(10) n'est pas nécessaire.

Étape 2 : Mettre en forme notre infobulle pour obtenir le comportement souhaité.

  1. Faites glisser le champ calculé que nous venons de créer sur la partie de l'infobulle dans la fiche Repères.
  2. Modifiez notre infobulle afin que la mise en forme place tous nos champs calculés d'infobulle personnalisée sur une ligne. Par exemple :

<AGG(Infobulle personnalisée pour un champ)><AGG(Infobulle personnalisée pour un autre champ)>

Le résultat final devrait présenter un aspect rationalisé, sans que rien ne s'affiche pour les valeurs null ou égales à zéro.

Cet article vous a-t-il permis de résoudre le problème ?