Оглавление
Одной из самых мощных функций SeaTable является колонка формул . С помощью формул вы можете подсчитывать значения других колонок текущей таблицы – или даже другой связанной таблицы –, использовать их для вычислений, преобразовывать, оценивать, объединять друг с другом и сравнивать. Кроме того, формулы могут возвращать константы и логические значения.
Вы можете добавить любое количество колонок формул, которые, в свою очередь, продолжают вычисления с результатами уже существующих колонок формул. Большое преимущество: результаты в колонках формул обновляются автоматически, как только изменяются значения в задействованных колонках.
В настоящее время SeaTable предлагает следующие функции, если вы выберете тип колонки Формула:
- Строки
- Константы
- Операнды
- Математические функции
- Текстовые функции
- Функции даты
- Логические функции
- Статистические функции
- Функции связывания
Помимо функций, в редакторе формул имеется один или несколько списков столбцов. Это доступные для выбора столбцы текущей таблицы и, при необходимости, столбцы связанных таблиц. Если щелкнуть на значке “+” справа, в поле ввода вставляется ссылка на столбец в формате {ColumnName} или {LinkColumn.ColumnName}. Вы можете использовать эти элементы непосредственно в своей формуле. В качестве альтернативы можно, конечно, ввести имена столбцов в фигурных скобках вручную.
В этой статье мы покажем вам полный обзор всех формул в SeaTable с подходящими примерами. Если вы ищете определенную функцию, вы можете использовать комбинацию клавиш Ctrl +F чтобы быстро найти запись на этой странице.
Коллекция формул SeaTable с примерами
Строки
| Оператор | Описание | Пример |
|---|---|---|
| rowID() | Возвращает уникальный идентификационный номер текущей строки в виде строки. | X18XAJeTSWeaO5hlqyUp1w |
Константы
| Оператор | Описание | Примеры |
|---|---|---|
| e | Возвращает число Эйлера e=2.71828…. | e+1
= 3.71828183 |
| pi | Возвращает число окружности Pi. | pi
= 3.14159265 |
| true() | Возвращает логическое значение ’true'. | true()
= true |
| false() | Возвращает логическое значение ‘false’. | false()
= false |
Операнды
| Оператор | Описание | Примеры |
|---|---|---|
| add(num1, num2) | Складывает два числовых значения (num1 и num2) и возвращает результат. | add(1, 2)
= 3 |
| Альтернатива: + | 1+2
= 3 |
|
| subtract(num1, num2) | Вычитает одно числовое значение (num2) из другого (num1). | subtract(5, 4)
= 1 |
| Альтернатива: - | 5-4
= 1 |
|
| multiply(num1, num2) | Перемножает два числовых значения. | multiply(3, 4)
= 12 |
| Альтернатива: * | 3*4
= 12 |
|
| divide(num1, num2) | Делит одно числовое значение (num1) на другое (num2). | divide(5, 2)
= 2.5 |
| Альтернатива: / | 3/2
= 1.5 |
|
| mod(num1, num2) | Вычисляет остаток от деления. | mod(10, 7)
= 3 |
| Альтернатива: % | 15%7
= 1 |
|
| power(num1, num2) | Вычисляет мощность (num2) числа (num1). | power(3, 2)
= 9 |
| Альтернатива: ^ | 3^2
= 9 |
|
| greater(num1, num2) | Проверяет, больше ли числовое значение (num1) другого (num2), и возвращает логическое значение ’true’ или ‘false’. | greater(2, 3)
= false |
| Альтернатива: > | 2>3
= false |
|
| lessthan(num1, num2) | Проверяет, меньше ли числовое значение (num1) другого (num2), и возвращает логическое значение ’true’ или ‘false’. | lessthan(2, 3)
= true |
| Alternativ: < | 2<3
= true |
|
| greatereq(num1, num2) | Проверяет, больше или равно числовое значение (num1) другому (num2), и возвращает логическое значение ’true’ или ‘false’. | greatereq(2, 3)
= false |
| Альтернатива: >= | 2>=3
= false |
|
| lessthaneq(num1, num2) | Проверяет, меньше или равно ли числовое значение (num1) другому (num2), и возвращает логическое значение ’true’ или ‘false’. | lessthaneq(2, 3)
= true |
| Alternativ: <= | 2<=3
= true |
|
| equal(number1, number2) | Проверяет, равны ли два значения (number1, number2), и возвращает логическое значение ’true’ или ‘false’. | equal({Old price}, {New price})
= false |
| Альтернатива: = | {Old price}={New price}
= false |
|
| unequal(number1, number2) | Проверяет, являются ли два значения (number1, number2) неравными, и возвращает логическое значение ’true’ или ‘false’ в каждом случае. | unequal({Old price}, {New price})
= true |
| Альтернатива: <> | {Old price}<>{New price}
= true |
|
| concatenate(string1, string2, …) | Конкатенирует несколько строк (string1, string 2, …) в одну строку. | concatenate({Supplier}, " is ", {Status})
= Linux is great |
| Альтернатива: & | {Supplier} & " is " & {Status}
= Linux is great |
Математические функции
| Оператор | Описание | Пример ввода | Результат |
|---|---|---|---|
| abs(number) | Возвращает абсолютное значение числа. | abs(-2) | 2 |
| ceiling(number, significance) | Округляет число до ближайшего целого числа или до ближайшего кратного заданному шагу (value). Если один из аргументов не является числовым, формула возвращает пустое значение. | ceiling(2.14) | 3 |
| Если число точно кратно значению, то округление не производится. Если число и значение отрицательные, то округление происходит в сторону от 0. Если число отрицательное, а значение положительное, то округление происходит в сторону 0. | ceiling(-2.14, 4) | 0 | |
| even(number) | Присваивает вещественному числу (digits) ближайшее большее четное число. | even(2.14) | 4 |
| exp(number) | Экспоненциальная функция для числа Эйлера e. Возвращает значение e, возведенное в степень заданного числа. | exp(1) | 2.71828… |
| floor(number, significance) | Округляет число до ближайшего целого числа или до ближайшего кратного заданному шагу (value). Если один из аргументов не является числовым, формула возвращает пустое значение. | floor(2.86) | 2 |
| Если число точно кратно значению, округление не производится. Если знак числа положительный, то округление происходит в сторону 0. Если знак числа отрицательный, то округление происходит в сторону от 0. | floor(-3.14, 5) | -5 | |
| int(number) | Присваивает вещественному числу (number) ближайшее меньшее целое число. | int(-3.14) | -4 |
| lg(number) | Функция логарифма (number) с основанием 10. | lg(100) | 2 |
| ln(number) | Функция логарифма (number) с числом Эйлера e в качестве основания. | ln(e) | 1 |
| log(number, base) | Функция (number) логарифма с определяемым основанием. | log(81, 3) | 4 |
| Однако если основание не указано, эта функция работает точно так же, как lg(), т.е. с основанием 10. | log(1000) | 3 | |
| odd(number) | Присваивает вещественному числу (number) ближайшее большее нечетное число. | odd(-2.14) | -1 |
| round(number, digits) | Округляет число до заданного количества десятичных знаков (digits). Если десятичный знак (digits) не указан, число округляется до 1-го места слева от десятичной точки. | round(3.14) | 3 |
| Если задана положительная десятичная дробь (digits), округляйте до цифры справа от десятичной точки. | round(3.14, 1) | 3.1 | |
| Если задан отрицательный десятичный знак (digits), округляется влево от десятичной точки. | round(3.14, -3) | 0 | |
| round(99.1, -2) | 100 | ||
| rounddown(number, digits) | Округлите число в направлении нуля. Если десятичный знак (digits) не указан, число округляется до 1-го места слева от десятичной точки. | rounddown(3.12, 1) | 3.1 |
| rounddown(-3.15) | -3 | ||
| roundup(number, digits) | Округляет число в большую сторону от нуля. Если десятичный знак (digits) не указан, число округляется до 1-й цифры слева от десятичной точки. | roundup(3.12, 1) | 3.2 |
| roundup(-3.15) | -4 | ||
| sign(number) | Проверяет, является ли число больше, равно или меньше 0. Возвращает значение 1, 0 и -1 соответственно. Другими словами, он возвращает знак числа, соответственно для ‘+’, ‘ноль’ и ‘-’ с 1, 0 и -1. | sign(-2) | -1 |
| sqrt(number) | Возвращает квадратный корень из числа. | sqrt(81) | 9 |
| sum(num1, num2, …) | Возвращает сумму чисел (num1, num2, …). | sum(7,8,9) | 24 |
Текстовые функции
| Оператор | Описание | Пример ввода | Результат |
|---|---|---|---|
| concatenate(text1, text2, text3) | Объединяет несколько строк (text1, text2, text3, …) в одну строку. | concatenate(“Sea”, “Table”, " “, “Cloud”) | SeaTable Cloud |
| Альтернатива: text1 & text2 & text3 | “Sea” & “Table” & " " & “Cloud” | SeaTable Cloud | |
| exact(string1, string2) | Проверяет, являются ли две строки (string1, string2) абсолютно идентичными. Возвращает значения ’true’ или ‘false’. Учитывается верхний/нижний регистр. | exact(‘SeaTable’, ‘Seatable’) | false |
| find(findString, sourceString, startPosition) | Возвращает начальную позицию строки (findString) внутри другой строки (sourceString). Чувствительность к регистру. Без поиска возвращается 0. Если начальная позиция (startPosition) задана в десятичном виде, она округляется в меньшую сторону. Если ячейка в столбце для ключевого слова (findString) все еще пуста, возвращается 1. Если ячейка в столбце для целевой строки (sourceString) все еще пуста, возвращается пустое значение (’’). | find(‘Sea’, ‘seaTable’, 1) | 0 |
| Поиск начнется с заданной ‘startPosition’. Однако это ‘startPosition’ не влияет на результат: он всегда возвращает абсолютную начальную позицию. Если ‘startPosition’ строки, которую нужно найти (findString), было задано после фактической начальной позиции строки (sourceString), возвращается 0, потому что с этой позиции ничего не было найдено. | find(’table’, ‘big table’, 4) | 5 | |
| find(’table’, ‘big table’, 6) | 0 | ||
| left(string, count) | Возвращает заданное количество (count) символов в начале строки. | left(‘SeaTable’, 3) | Sea |
| len(string) | Возвращает количество символов в строке. | len(‘SeaTable’) | 8 |
| lower(string) | Преобразует строку в строчные буквы. | lower(‘DeutscH’) | deutsch |
| mid(string, startPosition, count) | Возвращает указанное количество (count) символов из строки, начиная с указанной начальной позиции (startPosition). | mid(‘SeaTable is the best’, 1, 8) | SeaTable |
| Начальная позиция (startPosition) и число (count) не должны быть пустыми, отрицательными или равными нулю. Однако, если startPosition и count заданы в десятичном виде, они округляются в меньшую сторону. Слишком большое заданное число (count) будет проигнорировано. | mid(‘SeaTable is the best.’, 10.9, 27.3) | is the best. | |
| replace(sourceString, startPosition, count, newString) | Заменяет часть (count) строки (sourceString) с определенной начальной позиции (startPosition) на другую строку (newString). Количество (count) символов учитывается только для старой строки (sourceString), но не для новой строки (newString). | replace(‘SeaTable is the best.’, 1, 8, ‘Seafile’) | Seafile is the best. |
| Если значение count равно нулю, то новая строка просто добавляется с начальной позиции в старой строке. | replace(‘SeaTable is the best.’, 1, 0, ‘Seafile’) | SeafileSeaTable is the best. | |
| rept(string, number) | Повторяет строку столько раз (number), сколько указано. | rept(‘Sea ‘, 3) | Sea Sea Sea |
| right(string, count) | Возвращает заданное количество (count) символов в конце строки. | right(‘SeaTable’, 5) | Table |
| search(findString, sourceString, startPosition) | Возвращает начальную позицию строки (findString) внутри другой строки (sourceString). Чувствительность случая не учитывается. Без поиска возвращается 0. Если начальная позиция (startPosition) задана в десятичном виде, она округляется в меньшую сторону. Если ячейка в столбце для ключевого слова (findString) все еще пуста, возвращается 1. Если ячейка в столбце для целевой строки (sourceString) все еще пуста, возвращается пустое значение (’’). | search(‘Sea’, ‘seaTable’, 1) | 1 |
| Поиск начнется с заданной ‘startPosition’. Однако это ‘startPosition’ не влияет на результат: он всегда возвращает абсолютную начальную позицию. Если ‘startPosition’ строки, которую нужно найти (findString), было задано после фактической начальной позиции строки (sourceString), возвращается 0, потому что с этой позиции ничего не было найдено. | search(’table’, ‘big table’, 4) | 5 | |
| search(’table’, ‘big table’, 6) | 0 | ||
| substitute(sourceString, oldString, newString, index) | Заменяет существующий текст (oldString) на новый текст (newString) в строке (sourceString). Если в строке (sourceString) имеется более одного текста (oldString), заменяется только ‘index’-ый текст. Чувствительность к регистру соблюдается. | substitute(‘SeaTableTable’, ‘Table’, ‘file’, 1) | SeafileTable |
| Если индекс указан как 0 или не указан, все найденные части текста (oldString) заменяются новым текстом (newString). | substitute(‘SeaTableTable’, ‘Table’, ‘file’) | Seafilefile | |
| T(value) | Проверяет, является ли значение текстом. Если да, то возвращается текст. Если нет, возвращаемое значение будет пустым. | T(123) | (пустой) |
| T(‘123’) | 123 | ||
| text(number, format) | Преобразует число в текст и форматирует его в заданном формате. Формат может быть процент (‘percent’) и число, доллар (‘dollar’), евро (’euro’) и юань (‘yuan’). | text(150, ’euro’) | €150 |
| При прямом преобразовании числа в проценты его абсолютное значение сохраняется. То есть, 50 конвертируется в 5000%. Однако если вы хотите получить 50%, вам все равно придется разделить число на 100 перед преобразованием. | text(50, ‘percent’) | 5000% | |
| text(50/100, ‘percent’) | 50% | ||
| trim(string) | Удаляет пробелы в начале и конце строки. | trim(’ SeaTable ‘) | SeaTable |
| upper(string) | Преобразует строку в буквы верхнего регистра. | upper(‘DeutscH’) | DEUTSCH |
| value(string) | Преобразует текст (string), представляющий число, в число. | value(‘123’) | 123 |
Функции даты
| Оператор | Описание | Пример ввода | Результат |
|---|---|---|---|
| date(year, month, day) | Возвращает дату в международном формате (ISO) из введенных года, месяца и дня. Если год вводится с двумя цифрами, он автоматически понимается как год в 1900-х годах. Если номер месяца или дня слишком большой (больше 12 или 31 соответственно), то эти месяцы или дни автоматически переводятся в следующий год или месяц. | date(2021, 1, 3) | 2021-01-03 |
| + | Добавляет дни или продолжительность к дате с минутами или без них. Если в столбце даты нет минут, в качестве значения по умолчанию принимается 00:00 этого дня. | date(2021, 1, 31)+1 | 2021-02-01 |
| Например, если в колонке введена продолжительность 8 часов 20 минут {продолжительность} имеет: | date(2021, 1, 31)+{длительность} | 2021-01-31 08:20 | |
| - | Вычитает дни или продолжительность из даты с минутами или без них. Если в столбце даты нет минут, то 00:00 принимается за значение по умолчанию для этого дня. | date(2021, 1, 31) - 30 | 2021-01-01 |
| Например, если в колонке введена продолжительность 8 часов 20 минут {продолжительность} имеет: | date(2021, 1, 31)-{длительность} | 2021-01-30 15:40 | |
| При использовании {Date1}-{Date2} возвращается разница во времени в днях. | date(2021, 1, 31)-date(2020, 12, 23) | 39 | |
| dateAdd(date, count, unit) | Добавляет указанное количество (count) лет (‘years’), месяцев (‘months’), недель (‘weeks’), дней (‘days’), часов (‘hours’), минут (‘minutes’) или секунд (‘seconds’) к дате/времени (date). | dateAdd(‘2020-02-03’, 2, ‘days’) | 2020-02-05 |
| Совет: если вы хотите добавить сложную продолжительность (count), например, 1 день 12 часов, вы можете преобразовать ее, например, в 24+12=36 часов и ввести в формулу как одну продолжительность (count). Переведите продолжительность в наименьшую единицу измерения: в данном случае в часы. | dateAdd(‘2020-09-04 13:05:18’, 36, ‘hours’) ИЛИ dateAdd({form submission}, 36, ‘hours’) | 2020-09-06 01:05:18 | |
| dateDif(startDate, endDate, unit) | Вычисляет секунды, дни, месяцы или годы между двумя значениями даты. Необязательный аргумент единицы измерения может быть одним из следующих: S (секунды), D (полные дни), M (полные месяцы), Y (полные годы), YD (полные дни, без учета лет), YM (полные месяцы, без учета дней и лет), MD (полные дни, без учета месяцев и лет). | dateDif(‘2018-01-01’, ‘2020-01-01’, ‘Y’) | 2 |
| Необязательный аргумент единицы измерения может быть одним из следующих: S (секунды), D (полные дни), M (полные месяцы), Y (полные годы), YD (полные дни, без учета лет), YM (полные месяцы, без учета дней и лет), MD (полные дни, без учета месяцев и лет). | dateDif(‘2019-10-11’, ‘2020-12-12’, ‘M’) | 14 | |
| datetimeFormat(date, format) | Преобразует значение колонки даты в строку. С помощью заполнителей (format) месяц, день, час, минуту и секунду можно вывести в нужном формате. | datetimeFormat(“2020-01-01”, “MM/DD/YYYY”) | 01/01/2020 |
| Совет: если вставить заполнитель MMMM, полное название месяца будет отображаться прописью. | datetimeFormat({Birthday}, “D MMMM YYYY”) | 6 November 1972 | |
| day(date) | Возвращает день даты в виде числа. Возвращаемое число находится в диапазоне от 1 до 31. | day(‘2020-01-03’) | 3 |
| days(startDate, endDate) | Возвращает количество дней между двумя значениями даты (начальная дата и конечная дата). | days(‘2020-01-01’, ‘2020-02-03’) | 33 |
| eomonth(startDate, months) | Определяет дату последнего дня месяца, который является указанным количеством (months) месяцев после указанной даты (startDate). Если число (months) задано как 0, то просто определяется последний день месяца. | eomonth(‘2020-01-01’, 1) | 2020-02-29 |
| Если число (months) задано отрицательным, определяется дата последнего дня месяца, который содержит абсолютное число (months) месяцев до указанной даты (startDate). | eomonth(‘2020-01-01’, -1) | 2019-12-31 | |
| hour(date) | Возвращает час времени (date) в виде числа. Возвращаемое число находится в диапазоне от 0 до 23. | hour(‘2020-02-14 13:14:52’) | 13 |
| Если во времени (date) нет часа, возвращается 0. | hour(‘2020-02-14’) | 0 | |
| hours(startDate, endDate) | Возвращает количество часов между двумя значениями даты (начальная дата и конечная дата). Минуты в значениях даты не учитываются. | hours(‘2020-02-14 13:14’, ‘2020-02-14 15:14’) | 2 |
| Если в спецификации времени (дата начала или дата окончания) не указаны часы, автоматически предполагается 0 часов в этот день. | hours(‘2020-02-14’, ‘2020-02-14 15:14’) | 15 | |
| minute(date) | Возвращает минуты времени (date) в виде числа. Возвращаемое число находится в диапазоне от 0 до 59. | minute(‘2020-02-14 13:14:52’) | 14 |
| Если во времени (date) нет минут, возвращается 0. | minute(‘2020-02-14’) | 0 | |
| month(date) | Возвращает месяц даты в виде числа. Возвращаемое число находится в диапазоне от 1 (январь) до 12 (декабрь). | month(‘2020-02-14 13:14:52’) | 2 |
| months(startDate, endDate) | Возвращает количество месяцев между двумя значениями даты (начальная дата и конечная дата). Дни и время в значениях даты не учитываются. | months(‘2020-02-01 13:14’, ‘2020-03-31 15:54’) | 1 |
| Если в значениях дат (startDate, endDate) не указан месяц, в качестве месяца автоматически принимается январь. | months(‘2020’, ‘2021’) | 12 | |
| networkdays(startDate, endDate, holiday1, holiday2, …) | Возвращает количество целых рабочих дней между двумя значениями даты (начальная дата и конечная дата). Вы также можете определить праздники, отличные от субботы и воскресенья (holiday1, holiday2 и т.д.), они также будут вычитаться. Если в расчет не нужно включать праздничные дни, эти параметры можно просто опустить. | networkdays(‘2020-01-01’, ‘2020-01-07’,‘2020-01-01’) | 4 |
| Обратите внимание, что указанный последний день (endDate) также учитывается в формуле. То есть, например, в данной формуле учитываются три рабочих дня: 7, 8 и 9 сентября 2020 года. | networkdays(‘2020-09-07’, ‘2020-09-09’) | 3 | |
| now() | Возвращает текущую дату и время. Эта колонка обновляется автоматически только после перезагрузки базы. | now() | 2020-09-07 12:59 |
| second(date) | Возвращает секунды времени (date) в виде числа. Возвращаемое число находится в диапазоне от 0 до 59. | second(‘2020-02-14 13:14:52’) | 52 |
| today() | Возвращает текущую дату. Эта колонка обновляется автоматически только после перезагрузки базы. | today() | 2020-09-07 |
| Эта функция удобна для расчета продолжительности времени между определенной датой и временем и настоящим моментом. При каждой перезагрузке или пересчете базы расчет обновляется. | networkdays(‘2020-09-01’, today()) | 4 | |
| weekday(date, weekStart) | Возвращает день недели даты в виде числа. Возвращаемое число - от 1 до 7. Вы можете определить первый день недели (weekStart): Понедельник (‘Monday’) или Воскресенье (‘Sunday’ или опустить, так как по умолчанию начало в воскресенье). Третий вариант невозможен. Верхний/нижний регистр не учитывается. | weekday(‘2020-01-01’, ‘Monday’) | 3 |
| Если “начало недели” не указано или если указано “начало недели”, отличное от “понедельника” или “воскресенья”, всегда предполагается, что это “воскресенье”. Поэтому, если это должен быть “понедельник”, введите “понедельник”; если это должно быть “воскресенье”, вы можете опустить этот параметр. | weekday(‘2020-01-01’, ‘Thursday’) ИЛИ weekday(‘2020-01-01’) | 4 | |
| weeknum(date, return_type) | Возвращает абсолютный номер недели даты в виде числа. Возвращаемое число находится в диапазоне от 1 до 53. Здесь вы можете определить первый день недели (return_type). Введите число 1 или 2, или от 11 до 17, и 21 в качестве “return_type”, чтобы определить начало недели: 1/воскресенье, 2/понедельник, 11/понедельник, 12/вторник, 13/среда, 14/четверг, 15/пятница, 16/суббота, 17/воскресенье. Если необходимо вернуть номер недели в соответствии со стандартом ISO, укажите в качестве “return_type” число 21 или используйте функцию isoweeknum. | weeknum(‘2020-01-12’, 11) | 2 |
| Если не указан тип ‘return_type’, всегда предполагается, что это ‘Sunday’. | weeknum(‘2020-01-12’) | 3 | |
| isoweeknum(date) | Возвращает номер недели ISO (KW) даты в виде числа. | isoweeknum(‘2021-01-04’) | 1 |
| Отличие от функции weeknum(): с помощью функции isoweeknum() вы иногда также получаете номер недели, который все еще находится в предыдущем году. В данном примере: 1 января 2021 года относится к 53-й календарной неделе 2020 года в соответствии со стандартом ISO. | isoweeknum(‘2021-01-01’) | 53 | |
| year(date) | Возвращает год даты в виде числа. | year(‘2020-01-01’) | 2020 |
Логические функции
| Оператор | Описание | Пример ввода | Результат |
|---|---|---|---|
| and(logical1, logical2, …) | Проверяет, все ли аргументы (logical1, logical2, …) являются истинными (действительными, непустыми и ненулевыми). Если да, то возвращается ’true’, иначе ‘false’. | and(1, ‘’, 2) | false |
| if(logical, value1, value2) | Проверяет, является ли аргумент (logical) истинным, и если да, возвращает первое значение (value1), а если нет, возвращает второе значение (value2). Внимание: два значения (value1 и value2) должны быть одного типа, например, оба должны быть строкой или числом. В противном случае первый результат определит тип столбца, а там, где он должен добавить второе значение, будет заполнено пустое значение. | if(1>2, 3, 4) | 4 |
| Для условия (logical) допускается только сравнение с. Если вы введете только условие (logical) и первое значение (value1): оно вернет первое значение (value1), если условие (logical) истинно; и вернет пустое значение (’’), если условие (logical) ложно. | if({Budget}>{Price}, ‘Yes’) | Да | |
| ifs(logical1, value1, logical2, value2, …) | Проверяет, выполняется ли одно или несколько условий (logical1, logical2, …), и возвращает значение (value1, value2, …), соответствующее первому условию TRUE. По возможности старайтесь указывать все возвращаемые значения (value1, value2) одного типа (либо все «string», либо все «number»), например, в ifs({Area}=0,«mini»,{Area}<=100,” small«,{Area}1000,»large«), результат всегда будет „string“, или в примере справа результат всегда будет »number". Однако, если вы указали число как строку, функция ifs также будет работать, но в этом случае сумма для этой колонки больше не будет рассчитываться автоматически, так как она будет восприниматься как строка. | ifs( 1>2, 3, 5>4, 9) | 9 |
| isempty(“columnname”) | Проверяет, пуста ли ячейка в указанной колонке. Если она пуста, возвращается ’true’; если не пуста, ‘false’. | isempty(“Calendar Event ID”) | true |
| iserror(value) | Проверяет, является ли аргумент значением ошибки. Если да, возвращает ’true’; если нет, ‘false’. | iserror("#VALUE!") | true |
| not(boolean) | Меняет логическое значение (boolean). Другими словами: преобразует ’true’ в ‘false’ и ‘false’ в ’true’. | not(and(1, ‘’, 2)) | true |
| or(logical1, logical2, …) | Проверяет, является ли хотя бы 1 из аргументов (value1, value2, …) истинным (действительным, непустым и ненулевым) и в этом случае возвращает ’true’. Если все аргументы ложны, то возвращается ‘false’. | or(1, ‘’, 2) | true |
| switch(logical, matcher1, value1, matcher2, value2, …, default) | Оценивает выражение (logical) против списка значений (matcher) и возвращает результат (value), который соответствует первому совпадающему значению. Если совпадения нет, то возвращается необязательное значение по умолчанию. Должны быть указаны как минимум 3 параметра (logical, matcher, value). | switch(weekday(“2000-01-01”), 1, “Sunday”, 2, “Monday”, 3, “Tuesday”, 4, “Wednesday”, 5, “Thursday”, 6, “Friday”, 7, “Saturday”, “no match”) | Saturday |
| Если в списке значений (matcher) есть несколько одинаковых значений, учитывается только первое совпадение. | switch(int(68/10), 6, ‘OK’, 6, ‘KO’) | OK | |
| xor(logical1, logical2, …) | Возвращает контравалентность всех аргументов. Другими словами: Проверяет, является ли количество истинных аргументов (logical) нечетным, и возвращает значение ’true’. | xor(1, 0, 2<1, 1) | false |
Статистические функции
| Оператор | Описание | Примеры |
|---|---|---|
| average(number1, number2, …) | Возвращает среднее значение чисел (number1, number2, …). | average(1, 2, 3, 4, 5)
= 3 |
| count(number1, number2, …) | Возвращает количество чисел (number1, number2, …). Учитываются только действительные и непустые числа. В этом примере ’’ - пустое значение, а “3” - не число, а текст. | count(1, '', 2, '3')
= 2 |
| counta(textORnumber1, textORnumber2, …) | Подсчитывает количество непустых ячеек (textORnumber1, textORnumber2, …). В этих ячейках может быть текст или число. В данном примере 1 и 2 - это числа, ‘3’ - текст, а ’’ - пустое значение. | counta(1, '', 2, '3')
= 3 |
| countall(textORnumber1, textORnumber2, …) | Подсчитывает количество элементов (textORnumber1, textORnumber2, …), включая числа (1, 2), текст (‘3’) и пустые ячейки (’’). | countall(1, '', 2, '3')
= 4 |
| countblank(textORnumber1, textORnumber2, …) | Подсчитывает количество пустых ячеек. | countall(1, '', 2, '3')
= 1 |
| countItems(“column-name”) | Подсчитывает количество элементов в ячейке. Поддерживаемые типы столбцов: множественный выбор, сотрудник, файл и изображение. | countItems("members")
= 6 |
| max(number1, number2, …) | Возвращает наибольшее значение из указанных чисел (number1, number2, …). | max(-1, 3, 4, 2, -1)
= 4 |
| min(number1, number2, …) | Возвращает наименьшее значение из указанных чисел (number1, number2, …). | min(-1, 3, 4, 2, -1)
= -1 |
| large(num1, num2, …, k) | Возвращает k-большее значение из списка чисел (num1, num2, …). В данном примере: large(35, 92, 10, 2) возвращает 2-самое большое значение из (35, 92, 10), которое равно 35. | large(35, 92, 10, 2)
= 35 |
| small(num1, num2, …, k) | Возвращает k-меньшее значение из списка чисел (num1, num2, …). В данном примере: small(9, 2, -7, -3, 3) возвращает 3 наименьшее значение из (9, 2, -7, -3), которое равно 2. | small(9, 2, -7, -3, 3)
= 2 |
Функции связывания
Функции ссылок можно использовать здесь в виде формулы или задать их непосредственно с помощью колонки Формула связи.
| Оператор | Описание | Примеры |
|---|---|---|
| countlinks(“Column”, [condition]) | Подсчитывает связанные записи в заданном столбце ссылок (Column). Записи можно отфильтровать с помощью необязательного параметра condition([condition]). В примере: В текущей таблице есть связующая колонка “Speakers”. В одной из его ячеек находится несколько связанных записей. Теперь мы хотим подсчитать, сколько ссылок есть в каждой ячейке, где “Price” в связанной записи больше 500. | countlinks("Speakers", "{Price}>500")
= 3 (Количество записей, связанных с колонкой “Speakers”, где “Price” больше 500). |
| rollup(“Column”, “Other column”, summary, [condition]) | Возвращает оцененное значение связанных записей в других таблицах. При связывании из столбца “Column” оцениваются записи в столбце “Other column” в связанной таблице. Можно использовать следующие методы подведения итогов (“summary”): ‘average’, ‘concatenate’, ‘count’, ‘max’, ‘min’ и ‘sum’. По желанию можно применить условия фильтрации. В примере: В текущей таблице есть колонка ‘Speakers’, которая связана с другой таблицей. Поскольку каждый “Speaker” связан с несколькими записями, мы хотим выяснить, при “Price” меньше 500, какова наибольшая “Power” для каждого “Speaker”. | rollup("Speakers", "Power", "max", "{Price} < 500")
= 80 (Наибольшее значение из записей, связанных с колонкой “Speakers” в “Power”, где “Price” меньше 500). |
| lookup(findmax(“Column”, “Other column”), “Target”) | Ищет наибольшее значение в связанном столбце (“Other column”) и возвращает значение в той же строке из другого столбца (“Target”). Укажите, какой связывающий столбец (“Column”) и какой связанный столбец (“Other column”) и целевой столбец (“Target”) будут использоваться. В примере: В текущей таблице есть колонка “Speakers”, которая связана с другой таблицей. Поскольку каждый “Speaker” связан с несколькими записями, мы хотим выяснить, какую “Price” имеет каждый “Speaker” за свою самую большую “Power”. | lookup(findmax("Speakers", "Power"), "Price")
= 350 (Возвращает наибольшее значение “Price” в “Power”, связанное с колонкой “Speakers”). |
| lookup(findmin(“Column”, “Other column”), “Target”) | Ищет наименьшее значение в связанном столбце (“Other column”) и возвращает значение в той же строке из другого столбца (“Target”). Укажите, какой связывающий столбец (“Column”) и какой связанный столбец (“Other column”) и целевой столбец (“Target”) будут использоваться. В примере: В текущей таблице есть колонка “Speakers”, которая связана с другой таблицей. Поскольку каждый “Speaker” связан с несколькими записями, мы хотим выяснить, какую “Price” имеет каждый “Speaker” за свою наименьшую “Power”. | lookup(findmin("Speakers", "Power"), "Price")
= 210 (“Price” наименьшего значения в “Power”, связанного с колонкой “Speakers”). |