Вычислить поле

Insights в ArcGIS Online
Insights в ArcGIS Enterprise
Insights desktop

Вы можете добавить и вычислить новые поля в набор данных с помощью таблицы данных или data engineering. Вычисленные поля позволяют создавать значения, например, динамику роста, проценты убытка и изменения во времени, путём выбора поля из набора данных и применения к ним операторов и функций.

Вы также можете вычислить поля при помощи инструментов Вычислить % изменения, Вычислить отношение и Вычислить z-оценку в разделе Найти ответы.

Подсказка:

Используйте таблицы данных, чтобы добавить нормированные данные в ваш набор данных для построения карт, диаграмм и таблиц. После вычисления данных и добавления их в набор данных измените тип поля, чтобы определить его как поле доля/отношение Поле доля/отношение. Дополнительно о нормализации данных см. Картограммы.

Вычисление поля в таблице данных

Поля, вычисленные в таблице данных, отображаются только в рабочей книге и не добавляются в исходный набор данных. Если вы желаете сохранить вычисленное поле вне рабочей книги, можете создать новый векторный слой, опубликовав этот набор данных или использовав data engineering.

Примечание:

В таблице данных представлены ваши данные, объем таблицы ограничен пределом отображения в 2000 строк. Функция сортировки в восходящем и нисходящем порядке делает возможным просмотр 2000 верхних и 2000 нижних строк. Все вычисления выполняются для полного набора данных.

Выполните следующие шаги, чтобы вычислить поле в таблице данных:

  1. Откройте книгу и добавьте данные, если это необходимо.
  2. С панели данных щелкните кнопку Опции набора данных Опции набора данных рядом с набором данных, в который вы хотите добавить вычисленное поле.
  3. Щелкните Просмотр таблицы данных.
  4. Нажмите + поле.

    Столбец с именем Новое поле добавляется к таблице.

    Примечание:

    Вы можете изменить размер и порядок столбцов, но эти изменения не сохраняются.

  5. Щелкните заголовок столбца и введите более понятное имя.
  6. Щелкните fx или Ввести функцию вычисления чтобы отобразить меню с функциями, именами полей и операторами для построения формулы.

    Вместо кнопок меню fx можно использовать соответствующие кнопки клавиатуры.

  7. Воспользуйтесь функциями, полями и операторами для завершения вычислений.
  8. Щелкните Запустить.

    Если кнопка Запустить не активна, в синтаксисе вычислений имеется ошибка.

Новое вычисленное поле появляется в конце списка полей набора данных. Для удаления вычисленного поля выделите его и щелкните кнопку Удалить вычисленное поле Удалить вычисленное поле.

Вычисление столбца с помощью data engineering

Insights desktop
Примечание:

Data engineering доступно в Insights desktop. Все пользователи Insights in ArcGIS Online Insights in ArcGIS Enterprise получают доступ к Insights desktop. Более подробно см. Обзор ArcGIS Insights.

Data engineering в настоящий момент доступно в Предварительном просмотре.

Инструмент Вычислить столбец можно добавить в модель данных и использовать для добавления столбцов в выходной набор данных. Столбцы, вычисленные в рабочей книге данных, будут добавляться в выходной набор данных, а не существовать только в рабочей книге.

Выполните следующие шаги, чтобы вычислить столбец с помощью data engineering:

  1. Откройте рабочую книгу данных в Insights desktop и добавьте данные, если это необходимо.
  2. На боковой панели инструментов щелкните кнопку Вычислить столбец Вычислить столбец.
  3. Для параметра Имя нового столбца введите имя нового столбца.
    Примечание:

    Поддерживаемые базы данных в Insights поддерживают только буквы, цифры и знаки подчеркивания для имен столбцов. Неподдерживаемые символы в именах столбцов преобразуются в символы подчеркивания при сохранении в базу данных (например, population/sq mile преобразуются в population_sq_mile). Для достижения наилучших результатов примените имя столбца, в котором используются только поддерживаемые символы, а затем при необходимости обновите псевдоним столбца, указав другие символы.

  4. В поле Выражение столбца используйте функции, имена столбцов и операторы, чтобы завершить расчет по мере необходимости.

    Можно использовать соответствующие кнопки клавиатуры, чтобы заменить любые кнопки.

    Примечание:

    Если рабочая книга данных содержит более одного набора данных, параметры ввода основаны на активной таблице.

  5. Щелкните Запустить.

    Если кнопка Запустить не активна, в синтаксисе вычислений имеется ошибка.

В таблицу добавляется новый вычисленный столбец, а в модель данных добавляется инструмент Вычислить столбец.

Операторы

При вычислении поля могут потребоваться математические и логические операторы. Для вычисления полей доступны следующие операторы:

ОператорИспользование

+

Сложение.

-

Вычитание.

×

Умножение. Эквивалент на клавиатуре *.

÷

Деление. Эквивалент на клавиатуре /.

xy

Функция Степень. Эквивалент на клавиатуре ^.

<

Меньше.

>

Больше.

=

Равно.

<=

Меньше или равно.

>=

Больше или равно.

<>

Не равно.

,

Запятая, используется как разделитель компонентов синтаксиса в функциях.

(

Левая скобка.

)

Правая скобка.

AND

Логический оператор для соблюдения всех условий.

OR

Логический оператор для соблюдения одного из условий.

IS NULL

Бинарный оператор, проверяющий, равны ли значения в поле значению null. Выходное значение 0 назначается, когда проверяемое значение не равно null, а выходное значение 1 назначается, когда проверяемое значение равно null.

IS NOT NULL

Бинарный оператор, проверяющий, не равны ли значения в поле значению null. Выходное значение 0 назначается, когда проверяемое значение равно null, а выходное значение 1 назначается, когда проверяемое значение не равно null.

Примечание:

Математические операции, такие как +, -, > и = совместимы с числовыми полями и полями доля/отношение. Функции, такие как CONCATENATE() и DATEDIF() могут использовать вместо определенных математических операций для строковых полей и полей даты/времени, соответственно.

Операторы IS NULL и IS NOT NULL совместимы со всеми типами полей (строка, число, доля/отношение и дата/время), за исключением местоположений. Некоторые строковые поля со значениями null могут быть настроены как пустые строки. В таких случаях IS NULL и IS NOT NULL не вернет ожидаемых результатов. Следует использовать выражения field="" и field<>"" вместо field IS NULL и field IS NOT NULL соответственно.

Операторы AND и OR могут использоваться для объединения условий с различным синтаксисом, в отличие от соответствующих логических функций. В следующих примерах показаны эквивалентные вычисления с использованием функций и операторов:

Примечание:

При вычислении полей, AND и OROR должны использоваться в функции IF().

ФункцияОператор

IF(AND(MeanAge>=18, MeanAge<=33),"Millennial","Other")

IF(MeanAge>=18 AND MeanAge<=33,"Millennial","Other")

IF(OR(Crime="Theft", Crime="Theft from vehicle", Crime="Shoplifting"), "Larceny", "Other")

IF(Crime="Theft" OR Crime="Theft from vehicle" OR Crime="Shoplifting", "Larceny", "Other")

Функции

Функции можно выбрать с помощью кнопки fx или поля Ввести функцию вычисления в таблице данных. Есть четыре типа функций: строковые, числовые, функции для дат и логические.

Когда вы добавляете функцию в вычисление, появляется всплывающее окно с синтаксисом функции. Вы можете убрать всплывающее окно, используя кнопку закрытия Закрыть диалог, или вернуть его, щелкнув функцию в поле Введите функцию вычисления.

Строковые функции

Большинство строковых функций использует строковые входные данные и выдаёт в результате строковые данные. Исключение составляют две функции: VALUE() и FIND(). Они обе используют строковые входные данные, а выдают числовые в результате.

Текст в строковых функциях может быть либо буквенным (текст, помещенный в кавычки), либо это значения поля категории. В следующей таблице в примерах используются и поля категорий, и значения этих полей. Кавычками обособляются значения полей, и это демонстрирует, что поля содержат категорийные данные.

СинтаксисОписаниеПример

CONCATENATE(text1, [text2], ... )

Соединяет два или более строковых значения.

Набор данных школ Калифорнии содержит отдельные поля для адреса улицы, города и почтового индекса. С помощью функции CONCATENATE() из них можно создать одно поле:

  • Синтаксис функции: CONCATENATE(Address,", ", City," , CA, ",ZIP)
  • Пример значений полей:
    • Address = "380 New York St"
    • City = "Redlands"
    • ZIP = "92373"
  • Результат: "380 New York St, Redlands, CA, 92373"

FIND(find_text, within_text, [start_num])

Выдаёт позицию указанного тексте (символа или символов) в строковом или текстовом поле. Функция FIND() особенна полезна, когда она используется вместе с другими функциями, например, MID(), LEFT() или RIGHT().

Набор данных содержит поле с адресом улицы (включающее имя улицы и номер). Чтобы классифицировать данные по улицам, необходимо удалить имя улицы из полного адреса с помощью функции MID(). Однако каждый номер имеет различную длину, и для каждой строки start_num будет отличаться. Значение start_num можно найти, если применить функцию FIND():

  • Синтаксис функции: FIND(" ", Address)
  • Пример значений полей:
    • Address = "380 New York St"
  • Число в результате: 4

LEFT(text, [num_chars])

Возвращает часть текстового поля.

  • num_chars: указывает, сколько символов выражения будет возвращено. Значение должно быть integer. Количество символов будет отсчитываться слева направо, начиная с первой позиции. Если num_chars не указан, по умолчанию используется один символ.

Набор данных о дорожных происшествиях включает поле категории, содержащее день, когда произошло событие. В нем записаны день недели, дата и год. Чтобы изучить происшествия по дням недели, с помощью функции LEFT() можно вычислить новое поле, которое будет содержать первые три символа исходного поля (начиная со дня недели):

  • Синтаксис функции: LEFT(Accident_Date, 3)
  • Пример значений полей:
    • Accident_Date = "Monday, November 14, 2016"
  • Результат: "Mon"

LOWER(text)

Возвращает символьное выражение, где все символы переведены в символы нижнего регистра.

Управление общественных сооружений составляет список дорожных знаков, которые необходимо убрать. К списку были добавлены новые записи, поле Status необходимо привести к стандартному виду, чтобы было удобно отобразить знаки уникальными значениями. Значения поля Status можно стандартизировать, чтобы все символы были с маленькой буквы, с помощью функции LOWER():

  • Синтаксис функции: LOWER(Status)
  • Пример значений полей:
    • Status = "Installed"
  • Результат: "installed"

MID(text, start_num, [num_chars])

Возвращает часть текстового поля.

  • start_num: определяет позицию первого символа (начиная с 1). Значение start_num должно быть integer.
  • num_chars: указывает, сколько символов выражения будет возвращено. Значение должно быть integer. Если значение num_chars больше, чем длина строки, возвращаются только значимые символы. Если num_chars не указан, по умолчанию используются все символы после начального.

Набор данных школ Калифорнии содержит отдельные поля для адреса улицы, города и почтового индекса. Название улицы можно отделить от адреса улицы с помощью функции MID():

  • Синтаксис функции: MID(Address, 5, 20)
  • Пример значений полей:
    • Address = "380 New York St"
  • Результат: "New York St"

RIGHT(text, [num_chars])

Возвращает часть текстового поля.

  • num_chars: указывает, сколько символов выражения будет возвращено. Значение должно быть integer. Количество символов будет отсчитываться справа налево, начиная с последней позиции. Если num_chars не указан, по умолчанию используется один символ.

Набор данных национальных парков включает поле с именем парка и двузначным кодом штата. Чтобы назначить символы парков в зависимости от штата, можно добавить новое поле и вычислить его значения с помощью функции RIGHT():

  • Синтаксис функции: RIGHT(Park, 2)
  • Пример значений полей:
    • Park = "Hawai'i Volcanoes National Park, HI"
  • Результат: "HI"

SUBSTITUTE(source_text, old_text, new_text)

Заменяет старый текст на указанный новый.

  • source_text: Исходный текст или поле с текстом.
  • old_text: Текст в пределах source_text, который вы хотите заменить.
  • new_text: текст для замещения old_text.

Набор данных c местоположениями выбоин содержит поле с адресом улицы. Набор данных требует обновления, если улицу Абрикосовая переименуют в Виноградная. Поле street_name можно обновить при помощи функции SUBSTITUTE():

  • Синтаксис функции: SUBSTITUTE(street_name, "Main", "5th")

Примечание:

Функция SUBSTITUTE() заменит все вхождения old_text на new_text. Например, результирующий текст для функции SUBSTITUTE("aba", "a", "c") будет "cbc".

TRIM(text)

Возвращает строку с удаленными пробелами, которые были в начале и в конце строки.

Сервис объектов содержит текстовые поля, значения которых содержат лишние пробелы в начале и в конце. С помощью функции TRIM() можно удалить лишние пробелы:

  • Синтаксис функции: TRIM(City)
  • Пример значений полей:
    • City = " Redlands "
  • Результат: "Redlands"

UPPER(text)

Возвращает символьное выражение, где все символы переведены в символы верхнего регистра.

Набор данных с местоположениями негосударственных учреждений, который содержит полные названия организаций и их аббревиатуры, если они есть. Аббревиатуры можно привести к общему виду, если сделать все символы с заглавной буквы с помощью функции UPPER():

  • Синтаксис функции: UPPER(Org)
  • Пример значений полей:
    • Org = "Nasa"
  • Результат: "NASA"

VALUE(text, [format])

Конвертирует текст в число.

  • format: указывает символ, который используется как разделитель десятичных знаков. format может быть десятичной запятой (",") или десятичной точкой ("."). Если format не указан, разделителем по умолчанию будет десятичная точка.

Примечание:

Вложение других функций в функции VALUE() может дать непредсказуемые результаты, если format не предоставлен. Поэтому рекомендуется указывать format при использовании функции VALUE().

Функция VALUE() в текущий момент не поддерживает конвертацию текста в отрицательные числа.

В наборе данных о магазинах розничной продажи есть поле категорий с данными об объёме прибыли. Поле Revenue можно конвертировать в числовое с помощью функции VALUE().

  • Синтаксис функции: VALUE(Revenue, ".")
  • Пример значений полей:
    • Revenue = "1,000.00"
  • Число в результате: 1000.00

Числовые функции

Большинство числовых функций использует числовые входные данные и выдаёт в результате числовые данные. Числовые функции чаще всего используются в сочетании с другими функциями или как метод трансформирования данных.

Входными числами могут быть либо числовые константы, либо числовые поля. В некоторых примерах ниже в качестве входных данных используются числа, а не поля, что лучше объясняет работу функции.

СинтаксисОписаниеПример

ABS(number)

Возвращает абсолютное значение (по модулю).

  • Синтаксис функции: ABS(-350)
  • Число в результате: 350

AVG(number)

Возвращает среднее значение.

  • Синтаксис функции: AVG(field)
  • Пример числовых значений field: 4, 5, 11, 6.5
  • Результат: 6.63

CEILING(number)

Округляет числа в большую сторону до ближайшего целого числа.

  • Синтаксис функции: CEILING(7.8)
  • Число в результате: 8

COS(number)

Возвращает тригонометрический косинус указанного угла, в радианах.

Следующее выражение может использоваться для конвертации градусов в радианы:

radians = θπ/180 where: θ = the angle in degrees π ≈ 3.14

  • Синтаксис функции: COS(0.35)
  • Число в результате: 0.94

FLOOR(number)

Округляет числа в меньшую сторону до ближайшего целого числа.

  • Синтаксис функции: FLOOR(7.8)
  • Число в результате: 7

LN(number)

Возвращает натуральный логарифм определенного выражения с плавающей точкой. Натуральный логарифм использует константу e как основание (приблизительно 2,72).

  • Синтаксис функции: LN(16)
  • Число в результате: 2.77

LOG(number)

Вычисляет логарифм числа для указанного основания. Основание по умолчанию – 10.

  • Синтаксис функции: LOG(16, 2)
  • Число в результате: 4

MAX(number) или MAX(date)

Возвращает максимальное значение.

  • Синтаксис функции: MAX(num_field)
  • Пример значений num_field: 4, 5, 11, 6.5
  • Результат: 11

MIN(number) или MIN(date)

Возвращает минимальное значение.

  • Синтаксис функции: MIN(date_field)
  • Примеры значений date_field: 03/17/2018, 02/14/2019, 10/31/2020
  • Результат: 03/17/2018

POWER(number, power)

Возвращает значение выражения, возведенного в указанную степень.

  • Синтаксис функции: POWER(2, 4)
  • Число в результате: 16

ROUND(number, num_digits)

Округляет числовые значения до указанного числа знаков.

  • num_digits = количество десятичных знаков для выходных данных
    • Если num_digits положительное, то число округляется до указанного числа десятичных знаков
    • Если num_digits нуль, то число округляется до ближайшего целого
    • Если num_digits отрицательное, число округляется до указанного числа знаков слева от точки.

  • Синтаксис функции: ROUND(54.854827, 2)
  • Число в результате: 54.85
  • Синтаксис функции: ROUND(54.854827, -1)
  • Число в результате: 50

SIN(number)

Возвращает тригонометрический синус указанного угла, в радианах.

Следующее выражение может использоваться для конвертации градусов в радианы:

radians = θπ/180 where: θ = the angle in degrees π ≈ 3.14

  • Синтаксис функции: SIN(0.79)
  • Число в результате: 0.71

STDEV(number)

Среднеквадратическое отклонение числового поля.

  • Синтаксис функции: STDEV(field)
  • Пример числовых значений field: 4, 5, 11, 6.5
  • Результат: 3,09

SUM(number)

Возвращает суммарное значение.

  • Синтаксис функции: SUM(field)
  • Пример числовых значений field: 4, 5, 11, 6.5
  • Результат: 26,5

TAN(number)

Возвращает тангенс входного выражения.

Следующее выражение может использоваться для конвертации градусов в радианы:

radians = θπ/180 where: θ = the angle in degrees π ≈ 3.14

  • Синтаксис функции: TAN(1.05)
  • Число в результате: 1.74

Функции дат

Функции дат могут использовать поля дат, текст или могут не требовать входных данных. Это зависит от функции. Функция DATEVALUE() может использоваться для замещения поля даты в функции DATEDIF() или TIMEDIF().

Примечание:

Поля Дата/Время, использующиеся в DATEDIF() и DATEADD() должны быть в формате, включающем дату (другими словами, либо дату и время, либо только дату). Поля Дата/Время, содержащие только время не принимаются.

Поля Дата/Время, использующиеся в TIMEDIF(), должны быть в формате, включающем время (другими словами, либо дату и время, либо только время). Поля Дата/Время, содержащие только дату не принимаются.

СинтаксисОписаниеПример

DATE(year, month, day, [hour, minute, second], [AM/PM])

Создаёт поле даты/времени при помощи трёх или более отдельных полей или значений. Приемлемы следующие спецификации:

  • year: "YY" (две цифры года) или "YYYY" (четыре цифры года)
  • month: "MM" (1–12)
  • day: "DD" (1–31)
  • hour: "HH" (0–23) or "hh" (1–12)
  • minute: "mm" (0–59)
  • second: "ss" (0–59)
  • AM/PM: "AM"/"PM" (не чувствительный к регистру)

Примечание:

Все входные поля могут быть числовыми или текстовыми, кроме параметра AM/PM. Числа должны быть целыми. Две цифры года должны быть строками.

При использовании функции DATE() с набором данных базы данных, если вы указали какой-нибудь параметр времени (hour, minute или second), вы должны ввести входное значение для всех параметров времени.

Набор данных ресторанов содержит текстовые поля, содержащие время и даты последних проверок их состояния. Поле даты проверок можно создать при помощи функции DATE():

  • Синтаксис функции: DATE(2016, Month, Day, Hour, Min, 00)
  • Пример значений полей:
    • Month = 8
    • Day = 15
    • Hour = 11
    • Minute = 30
  • Результирующая дата: 8/15/2016, 11:30:00

Примечание:

Результирующие даты в этом примере будут в 24-часовом формате. Чтобы использовать 12-часовой формат, надо указывать AM или PM. Этот же пример функции можно записать как DATE(2016, Month, Day, Hour, Min, 00, "AM").

TIME(hour, minute, second)

создаёт поле даты/времени при помощи трёх отдельных полей или значений. Приемлемы следующие спецификации:

  • hour: "HH" (0–23) or "hh" (1–12)
  • minute: "mm" (0–59)
  • second: "ss" (0–59)
  • AM/PM: "AM"/"PM" (не чувствительный к регистру)

Примечание:

Все входные поля могут быть числовыми или текстовыми, кроме параметра AM/PM. Числа должны быть целыми.

Набор данных записей больниц включает время поступления пациента. Поле времени для записи можно создать при помощи функции TIME():

  • Синтаксис функции: TIME(Hour, Min, 00)
  • Пример значений полей:
    • Hour = 11
    • Minute = 30
  • Результирующее время: 11:30:00

Примечание:

Результирующее время в этом примере будет в 24-часовом формате. Чтобы использовать 12-часовой формат, надо указывать AM или PM. Этот же пример функции можно записать как TIME(Hour, Min, 00, "AM").

DATEADD(date, integer, [unit])

Добавляет указанное количество времени к датам во входном поле.

  • date должно быть полем даты/времени. Поле должно быть в формате, включающем дату (другими словами, либо дату и время, либо только дату). Поля Дата/Время, содержащие только время не принимаются.
  • integer: число, добавляемое к входной дате. Если используется константа, она должна быть целочисленной, и может быть как положительной, так и отрицательной. Если используется числовое поле, знаки после запятой игнорируются. Поэтому рекомендуется использовать поле, которое содержит только целые числа или вычислить новое целочисленное поле (например, используя функцию ROUND()).
  • unit: добавляемые единицы времени. Поддерживаемые значения единиц включают:
    • "ss" = секунды
    • "mm" = минуты
    • "h" = часы
    • "D" = дни (по умолчанию)
    • "M" = месяцы
    • "Y" = годы

Если единицы измерения не указаны, будет использоваться "D".

Если к полю даты/времени добавляются месяцы, на выходе будет такой же день месяца, независимо от количества дней в месяце. Если такой день месяца является недопустимым в новом месяце, используется последний день месяца. Например, если при вычислении ко входному полю добавляется три месяца, а одной из исходных дат является 30 ноября 2021, выходное значение 30 февраля 2022 является недопустимым. Результат будет записан как 28 февраля 2022, т.к. 2022 год не високосный.

Отдел здравоохранения отвечает за хранение записей о вакцинации пациентов на своем участке. Определенная вакцина состоит из двух доз с интервалом введения не менее 60 и не более 180 дней. DATEADD() можно использовать для создания полей с датой, когда пациенты могут получить вторую дозу вакцины, и предельной датой второй прививки.

Дата доступности вакцинации:

  • Синтаксис функции: DATEADD(first_dose_date, 60, "D")
  • Пример значений полей:
    • first_dose_date = 7/11/2021
  • Итоговая дата: 9/9/2021

Последняя дата:

  • Синтаксис функции: DATEADD(first_dose_date, 180, "D")
  • Пример значений полей:
    • first_dose_date = 7/11/2021
  • Итоговая дата: 7/11/2021

TIMEADD(time, integer, unit)

Добавляет указанное количество времени ко времени во входном поле.

  • time должно быть полем даты/времени. Время может добавляться к полям даты/времени, включая поля, которые еще не содержат компонент времени.
  • integer: число, добавляемое к входному времени. Если используется константа, она должна быть целочисленной, и может быть как положительной, так и отрицательной. Если используется числовое поле, знаки после запятой игнорируются. Поэтому рекомендуется использовать поле, которое содержит только целые числа или вычислить новое целочисленное поле (например, используя функцию ROUND()).
  • unit: добавляемые единицы времени. Поддерживаемые значения единиц включают:
    • "ss" = секунды
    • "mm" = минуты
    • "h" = часы

Набор данных содержит даты и время в формате Всемирного координированного времени (UTC), его необходимо конвертировать в формат Центрального поясного времени (CST). Поле даты/времени со временем в формате CST можно создать при помощи функции TIMEADD():

  • Синтаксис функции: TIMEADD(UTC_date, -6, "h")
  • Пример значений полей:
    • UTC_date = 7/11/2021 2:30:00 PM
  • Итог: 7/11/2021 8:30:00 AM

DATEDIF(start_date, end_date, [unit])

Вычисляет, сколько времени прошло между двумя датами. start_date должно произойти до end_date, иначе будет выведено отрицательное значение.

  • start_date и end_date могут быть полями Дата/Время или функцией DATEVALUE(). Если используются поля Дата/Время, поле должно быть в формате, включающем дату (другими словами, либо дату и время, либо только дату). Поля Дата/Время, содержащие только время не принимаются.
  • unit: возвращаемые единицы измерения времени. Поддерживаемые значения единиц включают:
    • "ss" = секунды
    • "mm" = минуты
    • "h" = часы
    • "D" = дни (по умолчанию)
    • "M" = месяцы
    • "Y" = годы

Если единицы измерения не указаны, будет использоваться "D".

Округление проводится над результатами каждой единицы следующим образом:

  • Секунды - округление не проводится.
  • Минуты - одна минута вычисляется когда между датами есть полных 60 секунд. Результат округляется вниз до целых минут.
  • Часы - один час вычисляется когда между датами есть полных 60 минут. Результат округляется вниз до целых часов.
  • Дни - один день вычисляется когда между датами есть полных 24 часа. Результат округляется вниз до целых дней.
  • Месяцы - один месяц вычисляется когда между датами есть полный месяц (например, с 1 января по 1 февраля), независимо от количества дней в указанных месяцах. Результат округляется вниз до целых месяцев. Компоненты времени, такие как часы, в вычислении не используются.
  • Год - один год вычисляется когда между датами есть 183 дня (полгода). Результат округляется вниз до полугодия.

Набор данных ресторанов содержит даты последних проверок их состояния. С помощью функции DATEDIF() можно вычислить количество дней, прошедших между проверками:

Пример 1:

  • Синтаксис функции: DATEDIF(Inspection1, Inspection2, "D")
  • Пример значений полей:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 10/31/2016 2:30:00 PM
  • Время результата (дней): 77

Пример 2:

  • Синтаксис функции: DATEDIF(Inspection1, Inspection2, "D")
  • Пример значений полей:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 8/16/2016 8:00:00 AM
  • Результат (дней): 0

Пример 3:

  • Синтаксис функции: DATEDIF(Inspection1, Inspection2, "M")
  • Пример значений полей:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 10/31/2016 2:30:00 PM
  • Результат (месяцы): 2

TIMEDIF(start_time, end_time, [unit])

Вычисляет, сколько времени прошло между двумя значениями даты/времени. start_time должно произойти до end_time, иначе будет выведено отрицательное значение.

  • start_time и end_time могут быть полями Дата/Время или функцией DATEVALUE(). Если используется время (например, чч:мм:сс) оба поля start_time и end_time должны быть в формате только времени.
  • unit: возвращаемые единицы измерения времени. Поддерживаемые значения единиц включают:
    • "ss" = секунды (по умолчанию)
    • "mm" = минуты
    • "h" = часы

Если единицы измерения не указаны, будет использоваться "ss".

Округление проводится над результатами каждой единицы следующим образом:

  • Секунды - округление не проводится.
  • Минуты - одна минута вычисляется когда между датами есть полных 60 секунд. Результат округляется вниз до целых минут.
  • Часы - один час вычисляется когда между датами есть полных 60 минут. Результат округляется вниз до целых часов.

Набор данных записей операций в больнице включает время начала и время окончания операции. Время, проведенное пациентом на операции можно вычислить с использованием функции TIMEDIF():

  • Синтаксис функции: TIMEDIF(TimeIn, TimeOut, "mm")
  • Пример значений полей:
    • TimeIn = 11:30:00 AM
    • TimeOut = 2:30:20 PM
  • Результирующее время (минут): 180

DATEVALUE(date_text, [format])

Конвертирует текст в дату.

  • date_text может быть строковым полем или текстом, введенным в кавычках.
  • format (дополнительно) – формат введенной даты. format вводится как текст в кавычках. format может вводиться при использовании следующих спецификаций единиц измерения:
    • "MM" – месяц (1-12)
    • "DD" – день месяца (1–31)
    • "YY" – две цифры года
    • "YYYY" – четыре цифры года
    • "HH" – час (0-23)
    • "hh" – час (1-12)
    • "mm" – минуты (0-59)
    • "ss" – секунды (0-59)
    • "AM"/"PM" – не чувствительный к регистру

Примечание:

Вложение других функций в функции DATEVALUE() может дать непредсказуемые результаты, если format не предоставлен. Поэтому рекомендуется указывать format при помещении функций внутри DATEVALUE().

Даты, указанные без разделителей (например, "10312016"), будут рассматриваться как миллисекунды, если не предоставлен format. Поэтому рекомендуется указывать формат при вводе дат без разделителей.

Формат данных с разделителями, но без указанного format, будет автоматически распознаваться. Если формат невозможно распознать, по умолчанию будет применяться "MM-DD-YY".

Функция DATEVALUE() может считывать только текст, введенный в кавычках, или строковые поля. Поле даты/времени не может использоваться в качестве входных данных функции DATEVALUE().

Набор данных ресторанов содержит даты последних проверок их состояния. Можно вычислить количество дней, прошедших между проверками, используя функцию DATEVALUE() для указания текущей даты:

  • Синтаксис функции: DATEDIF(Inspection_date, DATEVALUE("10/31/2016", "MM/DD/YYYY"), "D")
  • Пример значений полей:
    • Inspection_date = 8/15/2016, 11:30:00 AM
  • Число в результате: 77

Дату и время можно отформатировать несколькими способами. Ниже приведено несколько примеров различных способов форматирования текста в даты:

  • DATEVALUE("12/25/2016 12:30:25 pm", "MM/DD/YYYY hh:mm:ss pm")
  • DATEVALUE("12/25/2016 14:23:45", "MM/DD/YYYY HH:mm:ss")
  • DATEVALUE("25-08-2008 08:40:13 AM", "DD/MM/YYYY hh:mm:ss AM")

NOW()

Возвращает текущую дату и время в формате дата/время. Время записывается в формате Всемирного координированного времени (UTC).

Набор данных ресторанов содержит даты последних проверок их состояния. Можно вычислить количество дней, прошедших между проверками, используя функцию NOW() для указания текущей даты:

  • Синтаксис функции: DATEDIF(Inspection_date, NOW(), "D")
  • Пример значений полей:
    • Inspection_date= 8/15/2016, 11:30:00 AM
  • Число в результате: 77

Логические функции

Логические функции используют строковые или числовые входные данные и выдают в результате строковые или числовые данные. Входные данные могут быть либо буквенными (текст, помещенный в кавычки, или числа-константы), либо значениями поля. В следующей таблице в качестве примеров используются комбинации полей и буквенных значений, а также примеры значений, которые могут находиться в заданных полях.

СинтаксисОписаниеПример

AND(condition,condition, ...)

Тестирует два или более условий и возвращает TRUE, если соблюдаются все условия. AND() должно использоваться в параметре condition функции IF().

  • condition: любое выражение, которое включает хотя бы один оператор условия. Условие может включать числа, строки или значения поля. Могут использоваться следующие условные операторы:
    • >: больше, чем
    • <: меньше, чем
    • >=: больше или равно
    • <=: меньше или равно
    • =: равно
    • <>: не равно

Набор данных содержит средний возраст людей, живущих в каждом квартале. Исследователь рынка хочет узнать, в каких кварталах преобладает молодёжь. Кварталы, в котором средний возраст населения – это дети нулевых годов, можно найти путём комбинации функций IF() и AND():

  • Синтаксис функции: IF(AND(MeanAge>=18, MeanAge<=33),"Millennial","Other")
  • Пример значения поля:
    • MeanAge = 43
  • Результат: "Other"

IF(condition, TRUE_expression, [FALSE_expression])

Тестирует условие и возвращает значение TRUE или FALSE, основанное на результате.

  • condition: любое выражение, которое включает хотя бы один оператор условия. Условие может включать числа, строки или значения поля. Могут использоваться следующие условные операторы:
    • >: больше, чем
    • <: меньше, чем
    • >=: больше или равно
    • <=: меньше или равно
    • =: равно
    • <>: не равно
  • TRUE_expression: выражение, которое можно использовать если условие верно. Это обязательный параметр.
  • FALSE_expression: выражение, которое можно использовать если условие не верно. Если не предоставлено FALSE_expression, по умолчанию будет null.

TRUE_expression и FALSE_expression могут быть любыми корректными условиями, включающими вложенную функцию IF(). Тип данных для TRUE_expression и FALSE_expression должны быть одинакового типа (например, обе строчки или оба числа).

Набор данных содержит поля с доходами и расходами, которые можно использовать для выявления статуса магазинов (прибыльные или убыточные). Статус каждого магазина можно найти, если применить функцию IF():

  • Синтаксис функции: IF(Revenue>Expenses, "Profit","Loss")
  • Пример значений полей:
    • Revenue = 400,000
    • Expenses = 350,000
  • Результат: "Profit"

ISNULL(field)*

Проверяет, равны ли значения в поле значению null. Выходное значение 0 назначается, когда проверяемое значение не равно null, а выходное значение 1 назначается, когда проверяемое значение равно null.

  • field: поддерживает использование полей типа строка, число, доля/отношение и время/дата.

ISNULL() можно использовать сам по себе, либо в параметре condition функции IF().

Набор данных содержит местоположения дорожных происшествий с участием велосипедистов, а также тип велосипедного маршрута на улице, где произошло столкновение. Если столкновение произошло на улице, где велодорожки нет, поле RouteType остается пустым. Набор данных можно обновить и заполнить значения null, используя комбинацию функций IF() и ISNULL():

  • Синтаксис функции: IF(ISNULL(RouteType), "None", RouteType)

ISNOTNULL(field)*

Проверяет, не равны ли значения в поле значению null. Выходное значение 0 назначается, когда проверяемое значение равно null, а выходное значение 1 назначается, когда проверяемое значение не равно null.

  • field: поддерживает использование полей типа строка, число, доля/отношение и время/дата.

ISNOTNULL() можно использовать сам по себе, либо в параметре condition функции IF().

Набор данных содержит местоположения дорожных происшествий с участием велосипедистов, а также тип велосипедного маршрута на улице, где произошло столкновение. Если столкновение произошло на улице, где велодорожки нет, поле RouteType остается пустым. Набор данных можно обновить и заполнить значения null, используя комбинацию функций IF() и ISNOTNULL():

  • Синтаксис функции: IF(ISNOTNULL(RouteType), RouteType, "None")

OR(condition,condition, ...)

Тестирует два или более условий и возвращает TRUE, если соблюдается хотя бы одно условие. OR() должно использоваться в параметре condition функции IF().

  • condition: любое выражение, которое включает хотя бы один оператор условия. Условие может включать числа, строки или значения поля. Могут использоваться следующие условные операторы:
    • >: больше, чем
    • <: меньше, чем
    • >=: больше или равно
    • <=: меньше или равно
    • =: равно
    • <>: не равно

Набор данных c местоположениями преступлений в городе. Криминалисту требуется проанализировать встречаемость краж на фоне других преступлений. Чтобы сравнить кражи с другими преступлениями, аналитик сначала должен определить, является ли преступление кражей. Тип преступления можно определить используя комбинацию функций IF() и OR():

  • Синтаксис функции: IF(OR(Crime="Theft", Crime="Theft from vehicle", Crime="Shoplifting"), "Larceny", "Other")
  • Результат: "Larceny"

*Некоторые поля, в которых нет данных, можно настроить как пустые, а не как null. В таких случаях ISNULL() и ISNOTNULL() не вернет ожидаемых результатов. Следует использовать выражения field="" и field<>"" вместо ISNULL(field) и ISNOTNULL(field) соответственно.