EmptyIsNull - 脚本和图表函数
EmptyIsNull 函数将空字符串转换成 NULL。因此,如果参数是空字符串,则返回 NULL,否则返回参数。
语法:
EmptyIsNull(exp )
返回数据类型: 如果参数为空字符串,则返回 NULL,否则返回参数
参数 | 描述 |
---|---|
expr | 表达式或字段包含要度量的数据。 |
示例 | 结果 |
---|---|
EmptyIsNull(AdditionalComments) |
此表达式将对 AdditionalComments 字段的任何空字符串值返回 NULL,而不是空字符串。返回非空字符串和数字。 |
EmptyIsNull(PurgeChar(PhoneNumber, ' -()')) |
此表达式将从 PhoneNumber 字段中删除任何破折号、空格和括号。如果没有剩余字符,EmptyIsNull 函数将返回 NULL 形式的空字符串; 空的 phone number 和没有 phone number 是一样的。 |
示例 - EmptyIsNull 基本原理
概览
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
加载到名为 Example 的数据表中的数据集。
-
数据表中有以下字段:
-
CustomerID
-
OrderID
-
Product
-
Status
-
PhoneNumber
-
加载脚本
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
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
-
CustomerID
-
OrderID
-
Product
-
Status
创建以下计算维度:
-
=EmptyIsNull(Status),以 NULL 的形式在 Status 字段中返回任何空字符串值。
-
=EmptyIsNull(PurgeChar(PhoneNumber, ' -()')),从 PhoneNumber 字段中删除所有破折号、空格和括号。如果没有剩余字符,则 EmptyIsNull 函数将空字符串返回为 NULL;空电话号码与没有电话号码相同。
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 |
在 Status 列中,请注意空值记录显示为有默认透明背景色的空单元格。对于这些空值,EmptyIsNull(Status) 测量的输出将返回 NULL,如带有灰色单元格背景的破折号 (-) 字符所示。
第二种度量使用 EmptyIsNull 函数与 PurgeChar - 脚本和图表函数,以删除 PhoneNumber 字段中的任何破折号 (-)、空格和括号 () ,然后将任何剩余的空字符串以 NULL 形式返回。现在,具有空值的单元格显示为破折号 (-) 和灰色背景格式。
示例 - 用文本替换空值并添加条件格式设定
概览
销售经理希望分析销售数据,并轻松识别包含缺失值的记录。
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
-
加载到名为 Example 的数据表中的数据集。
-
数据表中有以下字段:
-
ID
-
Name
-
Age
-
Email
-
Sales
-
Region
-
OrderStatus
-
加载脚本
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
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度:
-
ID
创建以下计算维度:
-
=If(IsNull(EmptyIsNull(Age)), 'NULL', EmptyIsNull(Age)),以 Age 字段中的任何空字符串值 NULL 的形式返回,然后用值 NULL而不是短横 (-) 字符标识并填充所有空值。
-
=If(IsNull(EmptyIsNull(Email)), 'NULL', EmptyIsNull(Email)),以 Email 字段中的任何空字符串值 NULL 的形式返回,然后用值 NULL而不是短横 (-) 字符标识并填充所有空值。
-
=If(IsNull(EmptyIsNull(Sales)), 'NULL', EmptyIsNull(Sales)),以 Sales 字段中的任何空字符串值 NULL 的形式返回,然后用值 NULL而不是短横 (-) 字符标识并填充所有空值。
-
=If(IsNull(EmptyIsNull(Region)), 'NULL', EmptyIsNull(Region)),以 Region 字段中的任何空字符串值 NULL 的形式返回,然后用值 NULL而不是短横 (-) 字符标识并填充所有空值。
-
=If(IsNull(EmptyIsNull(OrderStatus)), 'NULL', EmptyIsNull(OrderStatus)),以 OrderStatus 字段中的任何空字符串值 NULL 的形式返回,然后用值 NULL而不是短横 (-) 字符标识并填充所有空值。
设置条件单元格格式,将 NULL 值的背景颜色更改为红色,将所有其他数值的背景颜色更改为绿色。在每个维度和度量的属性面板中,输入以下表达式作为背景颜色表达式:
-
ID (dimension): =RGB(200,255,200)
-
Age (measure): =If(IsNull(EmptyIsNull(Age)), RGB(255,200,200), RGB(200,255,200))
-
Email (measure): =If(IsNull(EmptyIsNull(Email)), RGB(255,200,200), RGB(200,255,200))
-
Sales (measure): =If(IsNull(EmptyIsNull(Sales)), RGB(255,200,200), RGB(200,255,200))
-
Region (measure): =If(IsNull(EmptyIsNull(Region)), RGB(255,200,200), RGB(200,255,200))
-
OrderStatus (measure): =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 |
结果表明,通过使用EmptyIsNull 函数并添加条件格式设定,可以轻松识别缺失值记录。