Список функций формул

Математические функцииsum(numbers) — складывает все числа в массиве.multiply(numbers) — умножает между собой все числа в массиве.abs(number) — возвращает абсолютное значение числа.round(number, precision?) — округляет число с заданной точностью.floor(number) — округляет число вниз.ceil(number) — округляет число вверх.random() — генератор случайных чисел.Помните, что случайные числа могут не всегда выглядеть случайными.min(numbers) — возвращает минимальное значение из списка.max(numbers) — возвращает максимальное значение из списка.pow(number, exponent) — возводит число в указанную степень.sqrt(number) — возвращает квадратный корень числа.log(number, base) — возвращает логарифм числа.Работа с текстомlength(string) — возвращает количество символов.locate(string, substring, start?) — возвращает позицию первого вхождения подстроки.substr(string, start, count?) — возвращает подстроку.join(strings, separator?) — объединяет все элементы массива в одну строку.trim(string) — удаляет пробельные символы с начала и конца строки.trimStart(string) — удаляет пробельные символы с начала.trimEnd(string) — удаляет пробельные символы с конца строки.split(string, separator) — разделяет строку на подстроки с помощью разделителя.replace(string, find, replacement) — осуществляет замену первой найденной подстроки на заданную.replaceAll(string, find, replacement) — осуществляет замену всех найденных подстрок на заданную.Массивы (списки)count(array) — возвращает количество элементов в массиве.range(start, end, step?) — генерирует массив из чисел заданной длины.map(array, expression) — выполняет преобразование каждого элемента массива.merge(array1, array2, …) — объединяет несколько массивов в один.reduce(array, expression, initialValue) — выполняет преобразование каждого элемента массива, возвращая одно результирующее значение.reverse(array) — возвращает массив с элементами, переставленными в обратном порядке.filter(array, expression) — удаляет элементы массива, не соответствующие условию.sort(array, expression?) — сортирует элементы массива в порядке возрастания.slice(array, start, count?) — обрезает массив, возвращая часть исходного.Дата и времяЛогические функцииif(condition, then, else) — условный оператор.not(value) — возвращает true вместо false и наоборот.let(variables, expression) — присваивает имена результатам вычислений.Типы данныхtype(value) — возвращает тип значения: number, string, boolean, array, object, data или null.toBoolean(value) — преобразует значение в тип boolean (true или false).toNumber(value) — преобразует значение в число.toString(value) — преобразует значение в строку.toDate(value) — преобразует значение в дату.

Математические функции

sum(numbers) — складывает все числа в массиве.

sum([1, 2, 3]) == 6

multiply(numbers) — умножает между собой все числа в массиве.

multiply([2, 3, 4]) == 12

abs(number) — возвращает абсолютное значение числа.

abs(12) == 12
abs(-44) == 44

round(number, precision?) — округляет число с заданной точностью.

round(12.46) == 12
round(12.46, 1) == 12.5
round(12.462, 2) == 12.46
round(12.46, -1) == 10
round(123456, -3) == 123000

Используется округление 0.5 до ближайшего четного числа.

round(12.5) == 12
round(13.5) == 14
round(14.5) == 14
round(15.5) == 16

floor(number) — округляет число вниз.

floor(12.7) == 12
floor(-12.7) == -13

ceil(number) — округляет число вверх.

ceil(12.3) == 13
ceil(-12.3) == -12

random() — генератор случайных чисел.

Возвращает дробные числа в диапазоне от 0 до 1:

random() == 0.2850926978256794
random() == 0.7654290091085383

Это дробное число можно преобразовать в целое число в рамках заданного диапазона.

Целое число в диапазоне от 0 до 10 (включая 0 и 10):

round(random() * 10) == 7
round(random() * 10) == 3
round(random() * 10) == 10
round(random() * 10) == 5

Целое число в диапазоне от 10 до 20:

10 + round(random() * (20 - 10)) == 12
10 + round(random() * (20 - 10)) == 10
10 + round(random() * (20 - 10)) == 17
10 + round(random() * (20 - 10)) == 18

Помните, что случайные числа могут не всегда выглядеть случайными.

min(numbers) — возвращает минимальное значение из списка.

min([6, 2, 3]) == 2
min([0, -44, -2]) == -44

Функция умеет работать с любыми типами, а не только с числами.

min(["b", "e", "a"]) == "a"
min([#2012-05-22#, #2012-05-21#]) == #2012-05-22#

max(numbers) — возвращает максимальное значение из списка.

min([3, 6, 2]) == 6
min([-3, 0, -2]) == 0

Функция умеет работать с любыми типами, а не только с числами.

min(["b", "e", "a"]) == "e"
min([#2012-05-22#, #2012-05-25#]) == #2012-05-25#

pow(number, exponent) — возводит число в указанную степень.

pow(2, 2) == 4
pow(2, 3) == 8
pow(3, 2) == 9
pow(3, 3) == 27

sqrt(number) — возвращает квадратный корень числа.

sqrt(4) == 2
sqrt(25) == 25

log(number, base) — возвращает логарифм числа.

Логарифм это показатель степени, в которую надо возвести число, называемое основанием, чтобы получить данное число.

log(100, 10) == 2
log(16, 2) == 4

Работа с текстом

length(string) — возвращает количество символов.

length('') == 0
length('abcd') == 4

locate(string, substring, start?) — возвращает позицию первого вхождения подстроки.

locate('Hello, world!', 'Hello') == 0
locate('Hello, world!', 'world') == 7

Аргумент start позволяет указать позицию, откуда начинать поиск.

locate('Hello, world!', 'o') == 4
locate('Hello, world!', 'o', 5) == 8

Если подстрока не найдена, результатом будет -1.

locate('Hello, world!', 'something') == -1

substr(string, start, count?) — возвращает подстроку.

substr('Hello, world!', 7) == 'world!'

Аргумент count позволяет ограничить количество символов подстроки.

substr('Hello, world!', 7, 3) == 'wor'

join(strings, separator?) — объединяет все элементы массива в одну строку.

join(['a', 'b']) == 'ab'
join(['a', 123, null, false]) == 'a123false'

Аргумент $$delimiter используется в качестве разделителя:

join(['a', 'b', 'c'], ':') == 'a:b:c'
join([1, 2, 3, 4], ' + ') == '1 + 2 + 3 + 4'

trim(string) — удаляет пробельные символы с начала и конца строки.

trim(' test ') == 'test'

trimStart(string) — удаляет пробельные символы с начала.

trimStart(' test ') == 'test '

trimEnd(string) — удаляет пробельные символы с конца строки.

trim(' test') == ' test'

split(string, separator) — разделяет строку на подстроки с помощью разделителя.

split('1, 2, 3', ', ') == ['1', '2', '3']
split('Some words', ' ') == ['Some', 'words']

replace(string, find, replacement) — осуществляет замену первой найденной подстроки на заданную.

replace('Hello, world!', 'world', 'test') == 'Hello, test!'
replace('one, one', 'one', 'two') == 'two, one'

replaceAll(string, find, replacement) — осуществляет замену всех найденных подстрок на заданную.

replace('Hello, world!', 'o', 'O') == 'HellO, wOrld!'
replace('one, one', 'one', 'two') == 'two, two'

Массивы (списки)

count(array) — возвращает количество элементов в массиве.

count([1, 2, 3]) == 3

range(start, end, step?) — генерирует массив из чисел заданной длины.

range(0, 5) == [0, 1, 2, 3, 4]
range(0, 5, 2) == [0, 2, 4]
range(0, -20, -5) == [0, -5, -10, -15]

map(array, expression) — выполняет преобразование каждого элемента массива.

Внутри expression доступна переменная item со значением элемента массива.

map([1, 2, 3], item * 2) == [2, 4, 6]

merge(array1, array2, …) — объединяет несколько массивов в один.

merge([2, 4], [6, 8]) == [2, 4, 6, 8]

reduce(array, expression, initialValue) — выполняет преобразование каждого элемента массива, возвращая одно результирующее значение.

Внутри expression доступна переменная item со значением элементов массива.

Так же доступна переменная value, которая аккумулирует результирующее значение.

reduce(['a', 'b', 'c'], value & '-' & item, '') == 'a-b-c'

reverse(array) — возвращает массив с элементами, переставленными в обратном порядке.

reverse([1, 2, 3]) == [3, 2, 1]

filter(array, expression) — удаляет элементы массива, не соответствующие условию.

Внутри expression доступна переменная item со значением элемента массива.

filter([-5, 3, -22, 34], item > 0) == [3, 34]

sort(array, expression?) — сортирует элементы массива в порядке возрастания.

sort([4, 6, -3, 22]) == [-3, 4, 6, 22]

С помощью аргумента expression можно задать критерий, по которому осуществляется сортировка. Внутри доступна переменная item со значением элемента массива.

sort(
	[{x: 5, y: 10}, {x: 10, y: 5}],
	item.y
) == [{x: 10, y: 5}, {x: 5, y: 10}]

slice(array, start, count?) — обрезает массив, возвращая часть исходного.

slice([1, 2, 3, 4], 1) == [2, 3, 4]
slice([1, 2, 3, 4], 3) == [4]
slice([1, 2, 3, 4], 1, 1) == [2]
slice([1, 2, 3, 4], 1, 2) == [2, 3]

Отрицательный count позволяет делать срез с конца массива.

slice([1, 2, 3, 4], -1) == [4]
slice([1, 2, 3, 4], -3) == [2, 3, 4]
slice([1, 2, 3, 4], -3, 1) == [2]
slice([1, 2, 3, 4], -3, 2) == [2, 3]

Дата и время

now() — текущая дата и время.
now() == Date(2022-06-24T14:47:33.000Z)

См. также toDate

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

if(condition, then, else) — условный оператор.

if(12 > 4, 'more', 'less') == 'more'
if(12 > 54, 'more', 'less') == 'less'

Поддерживаются множественные условия.

if(condition, then, condition2, then2, …, else)

if(
	price < 100000, "До 100 000 р/мес",
	price < 200000, "От 100 000 до 200 000 р/мес",
	"От 200 000 р/мес"
)

not(value) — возвращает true вместо false и наоборот.

not(true) == false
not(false) == true

let(variables, expression) — присваивает имена результатам вычислений.

let({
	var1: 2 + 2 * 2,
}, var1 + var1) == 16

Типы данных

type(value) — возвращает тип значения: number, string, boolean, array, object, data или null.

type(123) == 'number'
type('hello') == 'string'
type(true) == 'boolean'
type(#2012-12-23#) == 'date'
type([11, 22]) == 'array'
type({ x: 1, y: 2 }) == 'object'
type(null) == 'null'

toBoolean(value) — преобразует значение в тип boolean (true или false).

toBoolean(0) == false
toBoolean(1) == true
toBoolean(22) == true

toBoolean('') == false
toBoolean('abc') == true

toBoolean(null) == false

Любые массивы, объекты и даты приводятся к true.

toBoolean([]) == true
toBoolean([0]) == true
toBoolean(now()) == true
toBoolean({}) == true
toBoolean({ "x": 0 }) == true

toNumber(value) — преобразует значение в число.

toNumber('0') == 0
toNumber('123') == 123
toNumber('123.4') == 123.4

toNumber(null) == 0

Если передать в функцию дату, результатом будет метка времени (количество миллисекунд с 1 января 1970 года).

toNumber(now()) == 1656083246000

Массивы и объекты к числу не приводятся, возвращают ошибку.

 

toString(value) — преобразует значение в строку.

toString(1) == '1'
toString(123.4) == '123.4'
toString(null) == ''

Если передать в функцию дату, результатом будет метка времени в формате ISO 8601.

toString(now()) == '2022-06-24T15:11:17.000Z'

Массивы и объекты к строке не приводятся, возвращают ошибку.

toDate(value) — преобразует значение в дату.

toDate(0) == Date(1970-01-01T00:00:00.000Z)
toDate(1656083935000) == Date(2022-06-24T15:18:55.000Z)
toDate(null) == null

Функция понимает разные варианты формата даты ISO 8601:

toDate('2022-06-24T15:18:55.000Z') == Date(2022-06-24T15:18:55.000Z)
toDate('2022-06-24 15:18') == Date(2022-06-24T15:18:00.000Z)
toDate('2022-06-24') == Date(2022-06-24T00:00:00.000Z)
toDate('2022-06') == Date(2022-06-01T00:00:00.000Z)

toDate('2022-06-24T15:18+02:00') == Date(2022-06-24T13:18:00.000Z)
toDate('2022-06-24 15:18 +02:00') == Date(2022-06-24T13:18:00.000Z)

Массивы и объекты к дате не приводятся, возвращают ошибку.

 

Работает на Creatium