EmptyIsNull — функция скриптa и диаграммы
Функция EmptyIsNull преобразует пустые строки в NULL. Следовательно, если параметр — пустая строка, она возвращает NULL, иначе она возвращает параметр.
Синтаксис:
EmptyIsNull(exp )
Возвращаемые типы данных: NULL, если параметр — пустая строка, иначе она возвращает параметр.
Аргумент | Описание |
---|---|
expr | Выражение или поле, содержащее данные для измерения. |
Пример | Результат |
---|---|
EmptyIsNull(AdditionalComments) |
Это выражение вернет NULL вместо любых пустых значений поля AdditionalComments. Возвращаются непустые строки и числа. |
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 — функция скриптa и диаграммы, чтобы удалить все тире (-), пробелы и круглые скобки () из поля PhoneNumber, а затем вернуть все оставшиеся пустые строки как NULL. Ячейки со значениями NULL теперь отображаются с тире (-) и серым фоном.
Пример. Замена значений 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)), чтобы вернуть как NULL все пустые строковые значения в поле Age, а затем определить и заполнить все нулевые значения значением NULL вместо символа тире (-).
-
=If(IsNull(EmptyIsNull(Email)), 'NULL', EmptyIsNull(Email)), чтобы вернуть как NULL все пустые строковые значения в поле Email, а затем определить и заполнить все нулевые значения значением NULL вместо символа тире (-).
-
=If(IsNull(EmptyIsNull(Sales)), 'NULL', EmptyIsNull(Sales)), чтобы вернуть как NULL все пустые строковые значения в поле Sales, а затем определить и заполнить все нулевые значения значением NULL вместо символа тире (-).
-
=If(IsNull(EmptyIsNull(Region)), 'NULL', EmptyIsNull(Region)), чтобы вернуть как NULL все пустые строковые значения в поле Region, а затем определить и заполнить все нулевые значения значением NULL вместо символа тире (-).
-
=If(IsNull(EmptyIsNull(OrderStatus)), 'NULL', EmptyIsNull(OrderStatus)), чтобы вернуть как NULL все пустые строковые значения в поле OrderStatus, а затем определить и заполнить все нулевые значения значением NULL вместо символа тире (-).
Задайте условное форматирование ячеек, чтобы изменить цвет фона на красный для значений NULL и на зеленый для всех остальных значений. На панели Свойства для каждого измерения введите следующее выражение в поле Выражение для цвета фона:
-
ID (измерение): =RGB(200,255,200)
-
Age (мера): =If(IsNull(EmptyIsNull(Age)), RGB(255,200,200), RGB(200,255,200))
-
Email (мера): =If(IsNull(EmptyIsNull(Email)), RGB(255,200,200), RGB(200,255,200))
-
Sales (мера): =If(IsNull(EmptyIsNull(Sales)), RGB(255,200,200), RGB(200,255,200))
-
Region (мера): =If(IsNull(EmptyIsNull(Region)), RGB(255,200,200), RGB(200,255,200))
-
OrderStatus (мера): =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 и добавления условного форматирования можно легко идентифицировать записи с отсутствующими значениями.