EmptyIsNull - fonction de script et fonction de graphique
La fonction EmptyIsNull convertit des chaînes vides en NULL. Ainsi, elle renvoie NULL si le paramètre est une chaîne vide ; sinon, elle renvoie le paramètre.
EmptyIsNull(exp )
NULL si le paramètre est une chaîne vide, sinon renvoie le paramètre
Argument | Description |
---|---|
expr | Expression ou champ contenant les données à mesurer. |
Exemple | Résultat |
---|---|
EmptyIsNull(AdditionalComments) |
Cette expression renverra NULL pour toutes les valeurs de chaîne vides du champ AdditionalComments au lieu de chaînes vides. Les chaînes non vides et les nombres sont renvoyés. |
EmptyIsNull(PurgeChar(PhoneNumber, ' -()')) |
Cette expression supprime tous les tirets, espaces et parenthèses du champ PhoneNumber. S'il ne reste plus de caractères, la fonction EmptyIsNull renvoie la chaîne vide comme NULL ; un numéro de téléphone phone number vide est identique à l'absence de numéro de téléphone phone number. |
Exemple - Les bases de EmptyIsNull
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
-
Jeu de données chargé dans une table de données appelée Example.
-
Champs suivants dans la table de données :
-
CustomerID
-
OrderID
-
Product
-
Status
-
PhoneNumber
-
Script de chargement
Example:
LOAD * inline [
CustomerID, OrderID, Product, Status, PhoneNumber
1, 1001, Widget,, (0123) 456 789
2, 1002, Gizmo, Open,-
3, 1003, Gadget, Closed,()
4, 1004, Widget,,678-9888
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
-
CustomerID
-
OrderID
-
Product
-
Status
Créez les dimensions calculées suivantes :
-
=EmptyIsNull(Status), pour renvoyer comme NULL toute valeur de chaîne vide dans le champ Status.
-
=EmptyIsNull(PurgeChar(PhoneNumber, ' -()')), pour supprimer tous les tirets, espaces et parenthèses du champ PhoneNumber. S'il ne reste plus de caractères, la fonction EmptyIsNull renvoie la chaîne vide comme NULL ; un numéro de téléphone vide est identique à l'absence de numéro de téléphone.
CustomerID |
OrderID |
Product | Status | EmptyIsNull(Status) | EmptyIsNull(PurgeChar(PhoneNumber, ' -()')) |
---|---|---|---|---|---|
1 | 1001 | Widget | - | 0123456789 | |
2 | 1002 | Gizmo | Open | Open | - |
3 | 1003 | Gadget | Closed | Closed | - |
4 | 1004 | Widget | - | 6789888 |
Dans la colonne Status, notez que les enregistrements contenant des valeurs vides apparaissent sous forme de cellules vides avec une couleur d'arrière-plan transparente par défaut. La sortie de la mesure EmptyIsNull(Status) renvoie NULL pour ces valeurs vides, comme l'indique le caractère de tiret (-) sur fond de cellule gris.
La deuxième mesure utilise la fonction EmptyIsNull avec PurgeChar - fonction de script et fonction de graphique pour supprimer tous les tirets (-), espaces et parenthèses () du champ PhoneNumber, puis renvoie toutes les chaînes vides restantes sous forme de NULL. Les cellules contenant des valeurs nulles apparaissent maintenant avec un tiret (-) et un formatage d'arrière-plan gris.
Exemple - Remplacement des valeurs nulles par du texte et ajout d'un formatage conditionnel
Vue d'ensemble
Un responsable commercial souhaite analyser les données des ventes et identifier facilement les enregistrements auxquelles il manque des valeurs.
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
-
Jeu de données chargé dans une table de données appelée Example.
-
Champs suivants dans la table de données :
-
ID
-
Name
-
Age
-
Email
-
Sales
-
Region
-
OrderStatus
-
Script de chargement
Example:
LOAD * inline [
ID,Name, Age, Email, Sales, Region, OrderStatus
1, John Smith, 30, john@email.com, 1000, North, Active
2, Jane Doe, '', jane@email.com, 1500, South, Active
3, Bob Johnson, 45, '', 800, East, Inactive
4, Alice Brown, 28, alice@email.com, '', West, Active
5, Charlie Lee, '', charlie@email.com, 1200, '', Active
6, Eva Green, 35, eva@email.com, 950, North, ''
7, David White, 50, '', '', South, Inactive
8, Fiona Black, 42, fiona@email.com, 1100, East, Active
];
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ce champ comme dimension :
-
ID
Créez les dimensions calculées suivantes :
-
=If(IsNull(EmptyIsNull(Age)), 'NULL', EmptyIsNull(Age)), pour renvoyer comme NULL toute valeur de chaîne vide dans le champ Age, puis identifier toutes les valeurs nulles et les remplacer par la valeur NULL au lieu d'un caractère de tiret (-).
-
=If(IsNull(EmptyIsNull(Email)), 'NULL', EmptyIsNull(Email)), pour renvoyer comme NULL toute valeur de chaîne vide dans le champ Email, puis identifier toutes les valeurs nulles et les remplacer par la valeur NULL au lieu d'un caractère de tiret (-).
-
=If(IsNull(EmptyIsNull(Sales)), 'NULL', EmptyIsNull(Sales)), pour renvoyer comme NULL toute valeur de chaîne vide dans le champ Sales, puis identifier toutes les valeurs nulles et les remplacer par la valeur NULL au lieu d'un caractère de tiret (-).
-
=If(IsNull(EmptyIsNull(Region)), 'NULL', EmptyIsNull(Region)), pour renvoyer comme NULL toute valeur de chaîne vide dans le champ Region, puis identifier toutes les valeurs nulles et les remplacer par la valeur NULL au lieu d'un caractère de tiret (-).
-
=If(IsNull(EmptyIsNull(OrderStatus)), 'NULL', EmptyIsNull(OrderStatus)), pour renvoyer comme NULL toute valeur de chaîne vide dans le champ OrderStatus, puis identifier toutes les valeurs nulles et les remplacer par la valeur NULL au lieu d'un caractère de tiret (-).
Définissez le formatage conditionnel des cellules de sorte que la couleur d'arrière-plan soit rouge pour les valeurs NULL et verte pour toutes les autres valeurs. Dans le panneau Propriétés de chaque dimension et de chaque mesure, saisissez les expressions suivantes comme Expression de la couleur d'arrière-plan :
-
ID (dimension) : =RGB(200,255,200)
-
Age (mesure) : =If(IsNull(EmptyIsNull(Age)), RGB(255,200,200), RGB(200,255,200))
-
Email (mesure) : =If(IsNull(EmptyIsNull(Email)), RGB(255,200,200), RGB(200,255,200))
-
Sales (mesure) : =If(IsNull(EmptyIsNull(Sales)), RGB(255,200,200), RGB(200,255,200))
-
Region (mesure) : =If(IsNull(EmptyIsNull(Region)), RGB(255,200,200), RGB(200,255,200))
-
OrderStatus (mesure) : =If(IsNull(EmptyIsNull(OrderStatus)), RGB(255,200,200), RGB(200,255,200))
ID |
If(IsNull(EmptyIsNull(Age)), 'NULL', EmptyIsNull(Age)) |
If(IsNull(EmptyIsNull(Email)), 'NULL', EmptyIsNull(Email)) | If(IsNull(EmptyIsNull(Sales)), 'NULL', EmptyIsNull(Sales)) | If(IsNull(EmptyIsNull(Region)), 'NULL', EmptyIsNull(Region)) | If(IsNull(EmptyIsNull(OrderStatus)), 'NULL', EmptyIsNull(OrderStatus)) |
---|---|---|---|---|---|
1 | 30 | john@email.com | 1000 | North | Active |
2 | NULL | jane@email.com | 1500 | South | Active |
3 | 45 | NULL | 800 | East | Inactive |
4 | 28 | alice@email.com | NULL | West | Active |
5 | NULL | charlie@email.com | 1200 | NULL | Active |
6 | 35 | eva@email.com | 950 | North | NULL |
7 | 50 | NULL | NULL | South | Inactive |
8 | 42 | fiona@email.com | 1100 | East | Active |
Les résultats montrent qu'en utilisant la fonction EmptyIsNull et en ajoutant un formatage conditionnel, vous pouvez facilement identifier les enregistrements auxquels il manque des valeurs.