Расчет выражений
< Платформа 3V | Выражение
Перейти к навигации
Перейти к поиску
Содержание
Синтаксис
- Операнды задаются в квадратных скобках, например [0].
- Параметры функций перечисляются через запятую.
- Логические операторы (не функции): and (или &&), or (или ||), not (или !).
- Логические константы: true, false
Также добавлен онлайн расчет выражений с моделью:
1 {
2 "expression": "FindIndex([1], [2])",
3 "operandValues": [
4 {
5 "id": 1,
6 "value": [
7 1,
8 2,
9 3
10 ]
11 },
12 {
13 "id": 2,
14 "value": 2
15 }
16 ]
17 }
где expression - текст формулы, а operandValues - операнды для формулы, для каждого из операндов необходимо указать соответствующий id, как с формуле и value (допускается как единичное значение, так и множественное)
Приведение
- приведение числа к строке можно воспользоваться операцией сложения. + [0] - в данном случае т.к. первый элемент строка, то вторая часть выражения приведется к строке.
Функции
Логические
- if([условие], [если true], [если false])
- in([значение, с которым сравнивать], [одно или более значений/массивов через запятую, которые сравнивать])
Связанные с null'ом
- Coalesce([операнды через запятую]) - возвращает первый не null, либо null, если все null
- Null() - возвращает null
- IsNull([0]) - проверяет на null
- IsNullOrEmpty([0]) - проверяет значение на null и пустоту
- ВНИМАНИЕ!!! в КАРТОЧКАХ при расчете Expression при передаче параметров в формулу значение null меняется на пустую строку.
Пример: if([0] = , true, false), тут если придет null в качестве значения параметра 0, то карточки приведут его значение к пустой строке и формула вернет true.
Но если используется какая то функция в самой формуле которая может вернуть null, то такая проверка не сработает.
Пример: if(if([0] = , Null(), [0]) = , true, false), тут результат вложенного if вернет null и тогда верхний if вернет false.
Агрегатные
С любыми типами данных:
- Count
- NullsCount
- NotNullsCount
- DistinctCount
С числами и датами:
- Min
- Max
С числами:
- Sum
- Avg
Со строками:
- Concatenate([разделитель:строка], [строка 1], ..., [строка N]) - объединение строк
Математические
- Abs([число]) - модуль числа
- Acos([число])
- Asin([число])
- Atan([число])
- Ceiling([число])
- Cos([число])
- Exp([число])
- Floor([число])
- IEEERemainder([число], [число])
- LinearRegression([массив чисел], [массив чисел], [число])
- Median([массив чисел])
- Log([число], [число])
- Log10([число])
- Pow([число], [число])
- Round([число], [целое число])
- Sign([число])
- Sin([число])
- Sqrt([число])
- Tan([число])
- Truncate([число])
Строковые
- Concatenate([разделитель:строка], [строка 1], ..., [строка N]) - объединение строк
- IndexOf([строка, в которой ищем], [строка, которую ищем]) - возвращает индекс первого символа строки, которую ищем или -1, если не найдена
- Length([строка]) - возвращает длину строки
- Letter([целое число - индекс латинской буквы]) - возвращает букву от A до Z
- Padleft([строка], [ожидаемая длина строки], [символ "замощения" слева])
- Substring([строка], [начальный индекс, начиная с 0], [кол-во символов])
- Split([0], [1]) - Разбивает строку на коллекцию строковых элементов через разделитель
- Join([0], [1]) - Объединяет коллекцию через разделитель в строку
Для работы с датами
- DateToString([дата], 'формат: строка') - преобразование даты в строку с учетом формата; если формат не задан, то подставляется "dd.MM.yyyy"; подробнее о форматах
- DayOfMonth([дата]) - возвращает число: день месяца
- DayOfYear([дата])
- DayOfWeek([дата])
- DaysInMonth([год:число], [месяц:число])
- FullYears([дата начала], [дата окончания]) - кол-во полных лет
- IsLeapYear([год:число]) - високосный ли год
- Month([дата]) - возвращает число: номер месяца
- Now() - возвращает сегодняшнее число и текущее время
- Today() - возвращает сегодняшнее число (время 00:00:00)
- Year([дата]) - возвращает число: год
- ComposeDate([год:число], [месяц:число], [день:число]) - возвращает дату
- ComposeDate([год:число], [месяц:число], [день:число], [час:число], [минута:число], [секунда:число]) - возвращает дату-время
- TrimTime([дата]) - возвращает дату без часов, минут, миллисекунд в формате dd.MM.yyyy , если на входе будет null, упадет ошибка
Преобразование
- ToString([значение]) - преобразовывает значение в строку
- ToInt([значение]) - преобразовывает значение в целое число
- ToDouble([значение]) - преобразовывает значение в число с плавающей запятой
- ToBoolean([значение]) - преобразовывает значение в логическое значение
- ToDate([значение]) - преобразовывает значение в дату
Random
- RandomInt() - возвращает целочисленное случайное число.
- RandomInt([максимальное значение]) - возвращает целочисленное случайное число, которое будет ограничено максимальным значением.
- RandomInt([минимальное значение],[максимальное значение]) - возвращает целочисленное случайное число, которое будет ограничено минимальным и максимальным значением.
- RandomDouble() - возвращает вещественное случайное число в диапазоне [0,1).
Работа с коллекциями
- Детально расписано в статье: Платформа 3V/Расчет выражений/Работа с коллекциями