EmptyIsNull - script- en diagramfunctie
De functie EmptyIsNull zet lege tekenreeksen om in NULL. Om die reden wordt NULL geretourneerd als de parameter een lege tekenreeks is, anders wordt de parameter geretourneerd.
Syntaxis:
EmptyIsNull(exp )
Retourgegevenstypen: NULL als de parameter een lege tekenreeks is, anders wordt de parameter geretourneerd.
Argument | Beschrijving |
---|---|
expr | De uitdrukking die of het veld dat de gegevens bevat die moeten worden gemeten. |
Voorbeeld | Resultaat |
---|---|
EmptyIsNull(AdditionalComments) |
Deze uitdrukking wordt als NULL geretourneerd voor lege tekenreekswaarden van het veld AdditionalComments in plaats van lege tekenreeksen. Niet-lege tekenreeksen en getallen worden geretourneerd. |
EmptyIsNull(PurgeChar(PhoneNumber, ' -()')) |
Deze uitdrukking zorgt ervoor dat alle streepjes, spaties en haakjes uit het veld PhoneNumber worden verwijderd. Als alle tekens zijn verwijderd, retourneert de functie EmptyIsNull de lege tekenreeks als NULL; een leeg veld voor phone number is hetzelfde als geen phone number. |
Voorbeeld - Basisprincipes voor EmptyIsNull
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
-
Een gegevensverzameling die wordt geladen in een tabel met de naam Example.
-
De volgende velden in de gegevenstabel:
-
CustomerID
-
OrderID
-
Product
-
Status
-
PhoneNumber
-
Load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
-
CustomerID
-
OrderID
-
Product
-
Status
Maak de volgende berekende dimensies:
-
=EmptyIsNull(Status), om lege tekenreeksen in het veld Status te retourneren als NULL.
-
=EmptyIsNull(PurgeChar(PhoneNumber, ' -()')), om alle streepjes, spaties en haakjes uit het veld PhoneNumber te verwijderen. Als alle tekens zijn verwijderd, retourneert de functie EmptyIsNull de lege tekenreeks als NULL; een leeg veld voor telefoonnummer is hetzelfde als geen telefoonnnummer.
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 |
In de kolom Status ziet u dat de records met lege waarden verschijnen als lege cellen met een standaard transparante achtergrondkleur. De uitvoer van de EmptyIsNull(Status) meting retourneert NULL voor deze lege waarden, zoals aangegeven door het streepjesteken (-) met grijze celachtergrond.
De tweede meting gebruikt de functie EmptyIsNull met de PurgeChar - script- en diagramfunctie om alle streepjes (-), spaties en haakjes () uit het veld PhoneNumber te verwijderen, en retourneert vervolgens alle overgebleven lege tekenreeksen als NULL. De cellen met nulwaarden worden nu weergegeven met een streepje (-) en een grijze achtergrondopmaak.
Voorbeeld - Nullwaarden vervangen door tekst en voorwaardelijke opmaak toevoegen
Overzicht
Een verkoopmanager wil verkoopgegevens analyseren en gemakkelijk de records identificeren die ontbrekende waarden bevatten.
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
-
Een gegevensverzameling die wordt geladen in een tabel met de naam Example.
-
De volgende velden in de gegevenstabel:
-
ID
-
Name
-
Age
-
Email
-
Sales
-
Region
-
OrderStatus
-
Load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:
-
ID
Maak de volgende berekende dimensies:
-
=If(IsNull(EmptyIsNull(Age)), 'NULL', EmptyIsNull(Age)), om alle lege tekenreeksen in het veld Age te retourneren als NULL, en vervolgens alle nulwaarden te identificeren en te vullen met de waarde NULL in plaats van een streepje (-).
-
=If(IsNull(EmptyIsNull(Email)), 'NULL', EmptyIsNull(Email)), om alle lege tekenreeksen in het veld Email te retourneren als NULL, en vervolgens alle nulwaarden te identificeren en te vullen met de waarde NULL in plaats van een streepje (-).
-
=If(IsNull(EmptyIsNull(Sales)), 'NULL', EmptyIsNull(Sales)), om alle lege tekenreeksen in het veld Sales te retourneren als NULL, en vervolgens alle nulwaarden te identificeren en te vullen met de waarde NULL in plaats van een streepje (-).
-
=If(IsNull(EmptyIsNull(Region)), 'NULL', EmptyIsNull(Region)), om alle lege tekenreeksen in het veld Region te retourneren als NULL, en vervolgens alle nulwaarden te identificeren en te vullen met de waarde NULL in plaats van een streepje (-).
-
=If(IsNull(EmptyIsNull(OrderStatus)), 'NULL', EmptyIsNull(OrderStatus)), om alle lege tekenreeksen in het veld OrderStatus te retourneren als NULL, en vervolgens alle nulwaarden te identificeren en te vullen met de waarde NULL in plaats van een streepje (-).
Stel voorwaardelijke celopmaak in om de achtergrondkleur te wijzigen in rood voor NULL waarden en groen voor alle andere waarden. Voer in het deelvenster Eigenschappen voor elke dimensie en meting de volgende uitdrukking in als de Uitdrukking achtergrondkleur:
-
ID (dimensie): =RGB(200,255,200)
-
Age (meting): =If(IsNull(EmptyIsNull(Age)), RGB(255,200,200), RGB(200,255,200))
-
Email (meting): =If(IsNull(EmptyIsNull(Email)), RGB(255,200,200), RGB(200,255,200))
-
Sales (meting): =If(IsNull(EmptyIsNull(Sales)), RGB(255,200,200), RGB(200,255,200))
-
Region (meting): =If(IsNull(EmptyIsNull(Region)), RGB(255,200,200), RGB(200,255,200))
-
OrderStatus (meting): =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 |
De resultaten laten zien dat u door de functie EmptyIsNull te gebruiken en voorwaardelijke opmaak toe te voegen, gemakkelijk records met ontbrekende waarden kunt identificeren.