EmptyIsNull - skript- och diagramfunktion
EmptyIsNull-funktionen konverterar tomma strängar till NULL. Den returnerar alltså NULL om parametern är en tom sträng. Annars returnerar den parametern.
Syntax:
EmptyIsNull(exp )
Returnerad datatyp: NULL om parametern är en tom sträng, annars returnerar den parametern
Argument | Beskrivning |
---|---|
expr | Det uttryck eller fält som innehåller de data som ska mätas. |
Exempel | Resultat |
---|---|
EmptyIsNull(AdditionalComments) |
Det här uttrycket returnerar NULL för eventuella tomma strängvärden för fältet AdditionalComments istället för tomma strängar. Strängar som inte är tomma och tal returneras. |
EmptyIsNull(PurgeChar(PhoneNumber, ' -()')) |
Det här uttrycket tar bort alla streck, blanksteg och parenteser från fältet PhoneNumber. Om det inte finns några tecken kvar returnerar funktionen EmptyIsNull den tomma strängen som NULL. Ett tomt phone number är ju samma sak som inget phone number. |
Exempel – grunderna i EmptyIsNull
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som läses in i en datatabell som heter Example.
-
Följande fält i datatabellen:
-
CustomerID
-
OrderID
-
Product
-
Status
-
PhoneNumber
-
Laddningsskript
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
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
-
CustomerID
-
OrderID
-
Product
-
Status
Skapa följande beräknade dimensioner:
-
=EmptyIsNull(Status), för att som NULL returnera alla tomma strängvärden i fältet Status.
-
=EmptyIsNull(PurgeChar(PhoneNumber, ' -()')), för att ta bort alla streck, blanksteg och parenteser från fältet PhoneNumber. Om det inte finns några tecken kvar returnerar funktionen EmptyIsNull den tomma strängen som NULL. Ett tomt telefonnummer är ju samma sak som inget telefonnummer.
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 |
I kolumnen Status ser du att poster med tomma värden visas som tomma celler med en transparent bakgrundsfärg som standard. Utdata från åtgärden EmptyIsNull(Status) returnerar NULL för dessa tomma värden, vilket indikeras av strecktecknet (-) med grå cellbakgrund.
Den andra åtgärden använder funktionen EmptyIsNull med PurgeChar - skript- och diagramfunktion för att ta bort eventuella streck (-), blanksteg och parenteser () från fältet PhoneNumber och sedan returnera eventuella återstående tomma strängar som NULL. Cellerna med nullvärden visas nu med ett streck (-) och grå bakgrundsformatering.
Exempel – Ersätta nullvärden med text och lägga till villkorlig formatering
Översikt
En försäljningschef vill analysera försäljningsdata och enkelt identifiera de poster som innehåller saknade värden.
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
-
En datauppsättning som läses in i en datatabell som heter Example.
-
Följande fält i datatabellen:
-
ID
-
Name
-
Age
-
Email
-
Sales
-
Region
-
OrderStatus
-
Laddningsskript
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
];
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension:
-
ID
Skapa följande beräknade dimensioner:
-
=If(IsNull(EmptyIsNull(Age)), 'NULL', EmptyIsNull(Age)) att som NULL returnera alla tomma strängvärden i fältet Age och sedan identifiera och fylla i alla nollvärden med värdet NULL i stället för ett streck (-).
-
=If(IsNull(EmptyIsNull(Email)), 'NULL', EmptyIsNull(Email)) att som NULL returnera alla tomma strängvärden i fältet Email och sedan identifiera och fylla i alla nollvärden med värdet NULL i stället för ett streck (-).
-
=If(IsNull(EmptyIsNull(Sales)), 'NULL', EmptyIsNull(Sales)) att som NULL returnera alla tomma strängvärden i fältet Sales och sedan identifiera och fylla i alla nollvärden med värdet NULL i stället för ett streck (-).
-
=If(IsNull(EmptyIsNull(Region)), 'NULL', EmptyIsNull(Region)) att som NULL returnera alla tomma strängvärden i fältet Region och sedan identifiera och fylla i alla nollvärden med värdet NULL i stället för ett streck (-).
-
=If(IsNull(EmptyIsNull(OrderStatus)), 'NULL', EmptyIsNull(OrderStatus)) att som NULL returnera alla tomma strängvärden i fältet OrderStatus och sedan identifiera och fylla i alla nollvärden med värdet NULL i stället för ett streck (-).
Ställ in villkorlig cellformatering för att ändra bakgrundsfärgen till röd för NULL-värden och grön för alla andra värden. I panelen Egenskaper för varje dimension och mätvärde anger du följande uttryck som Bakgrundsfärguttryck:
-
ID (dimension): =RGB(200,255,200)
-
Age (mätvärde): =If(IsNull(EmptyIsNull(Age)), RGB(255,200,200), RGB(200,255,200))
-
Email (mätvärde): =If(IsNull(EmptyIsNull(Email)), RGB(255,200,200), RGB(200,255,200))
-
Sales (mätvärde): =If(IsNull(EmptyIsNull(Sales)), RGB(255,200,200), RGB(200,255,200))
-
Region (mätvärde): =If(IsNull(EmptyIsNull(Region)), RGB(255,200,200), RGB(200,255,200))
-
OrderStatus (mätvärde): =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 |
Resultatet visar att du enkelt kan identifiera poster med saknade värden genom att använda funktionen EmptyIsNull och lägga till villkorlig formatering.