Notion, с его гибкими возможностями исследования данных, предоставляет мощные инструменты для создания формул. В данной статье мы представим вам обширный список формул, которые могут быть использованы в Notion для обработки текста, чисел, дат и многого другого.
Важно помнить, что формулы применяются и агрегируют значениями только из одной строки. Вы не можете использовать формулы по отношению к столбцам.
Вот список всех формул в Notion в виде таблицы:
Категория | Тип данных | Примеры |
Свойства | ㅤ | ㅤ |
Title | Текст | prop("Title") |
Text | Текст | prop("Text") |
Select | Текст | prop("Priority") == "High" |
Multi-Select | Текст | prop("Tags").length()
prop("Tags").includes("Finance") |
Checkbox | Булево | prop("Checkbox")
not prop("Checkbox") |
Email, URL, Phone Number | Текст | !empty(prop("Phone"))
!empty(prop("Email"))
link("Call", "tel:" + prop("Phone")) |
Unique ID | Текст | prop("Task ID").split("-").first() ← Prefixprop("Task ID").split("-").last() ← ID |
Created By, Edited By | Person | prop("Created By").name()
prop("Created By").email() |
Date, Created Time, Last Edited Time | Дата | prop("Due Date") > now()
dateBetween(prop("Birthday"), now(), "days") |
Number | Число | prop("Number") / 2
pi() * prop("Radius") ^ 2 |
Relation | Связь с другой страницей | prop("Tasks").length()
prop("Tasks").filter(current.prop("Status") !== "Done") |
Rollup | Агрегация значений | prop("Purchases").length()
prop("Average cost") * 12 |
Встроенные | ㅤ | ㅤ |
Math operators | Различные | 2 * pi()
"hello" + "world" |
Boolean values | Логические | true
false |
Comparison operators | Сравнение | 123 == 123 = true
"Notion" == "Motion" = false |
Logical operators | Логические | true and false
true or false
not true |
Ternary operator | Тернарный оператор | X ? Y : Z |
Функции | ㅤ | ㅤ |
if | Условие | if(true, 1, 2) = 1
if(false, 1, 2) = 2
prop("Checked") == true ? "Complete" : "Incomplete" |
ifs | Условия | ifs(true, 1, true, 2, 3) = 1
ifs(false, 1, false, 2, 3) = 3 |
empty | Пусто | empty(0) = true
empty([]) = true |
length | Длина | length("hello") = 5
length([1, 2, 3]) = 3 |
substring | Подстрока | substring("Notion", 0, 3) = "Not"
substring("Notion", 3) = "ion" |
contains | Содержит | contains("Notion", "ot") = true |
test | Тестирование | test("Notion", "Not") = true
test("Notion", "\\\\d") = false |
match | Поиск соответствий | match("Notion Notion", "Not") = ["Not", "Not"]
match("Notion 123 Notion 456", "\\\\d+") = ["123", "456"] |
replace | Замена | replace("Notion Notion", "N", "M") = "Motion Notion" |
replaceAll | Замена всех вхождений | replaceAll("Notion Notion", "N", "M") = "Motion Motion"
replaceAll("Notion 123", "\\\\d", "") = "Notion" |
lower | Преобразование в нижний регистр | lower("NOTION") = "notion" |
upper | Преобразование в верхний регистр | upper("notion") = "NOTION" |
repeat | Повторение | repeat("0", 4) = "0000"
repeat("~=", 10) = "~=~=~=~=~=~=~=~=~=~=" |
link | Создание гиперссылки | link("Notion", "<https://notion.so>") = "Notion" |
style | Добавление стилей | style("Notion", "b", "u") = "Notion"
style("Notion", "blue", "gray_background") |
unstyle | Удаление стилей | unstyle("Text")
unstyle("Text", "b") |
format | Форматирование | format(1234) = "1234"
format(now()) = "August 30, 2023 17:55" |
add | Сложение | add(5, 10) = 15
5 + 10 = 15 |
subtract | Вычитание | subtract(5, 10) = -5
5 - 10 = -5 |
multiply | Умножение | multiply(5, 10) = 50
5 * 10 = 50 |
mod | Остаток от деления | mod(5, 10) = 5
5 % 10 = 5 |
pow | Возведение в степень | pow(5, 10) = 9765625
5 ^ 10 = 9765625 |
divide | Деление | divide(5, 10) = 0.5
5 / 10 = 0.5 |
min | Минимум | min(1, 2, 3) = 1
min([1, 2, 3]) = 1 |
max | Максимум | max(1, 2, 3) = 3
max([1, 2, 3]) = 3 |
sum | Сумма | sum(1, 2, 3) = 6
sum([1, 2, 3], 4, 5) = 15 |
abs | Абсолютное значение | abs(10) = 10
abs(-10) = 10 |
round | Округление | round(0.4) = 0
round(-0.6) = -1 |
ceil | Округление вверх | ceil(0.4) = 1
ceil(-0.6) = 0 |
floor | Округление вниз | floor(0.4) = 0
floor(-0.6) = -1 |
sqrt | Квадратный корень | sqrt(4) = 2
sqrt(7) = 2.6457513110645907 |
cbrt | Кубический корень | cbrt(9) = 2.080083823051904
cbrt(64) = 4 |
exp | Экспонента | exp(1) = 2.718281828459045
exp(-1) = 0.36787944117144233 |
ln | Натуральный логарифм | ln(2.718281828459045) = 1
ln(10) = 2.302585092994046 |
log10 | Логарифм по основанию 10 | log10(10) = 1
log10(100000) = 5 |
log2 | Логарифм по основанию 2 | log2(4) = 2
log2(1024) = 10 |
sign | Знак числа | sign(-10) = -1
sign(10) = 1 |
pi | Число π | pi() = 3.141592653589793 |
e | Число e | e() = 2.718281828459045 |
toNumber | Преобразование в число | toNumber("2") = 2
toNumber(now()) = 1693443300000
toNumber(true) = 1 |
now | Текущая дата и время | now() = @August 30, 2023 5:55 PM |
minute | Минуты | minute(parseDate("2023-07-10T17:35Z")) = 35 |
hour | Часы | hour(parseDate("2023-07-10T17:35Z")) = 17 |
day | День недели | day(parseDate("2023-07-10T17:35Z")) = 1 |
date | День месяца | date(parseDate("2023-07-10T17:35Z")) = 10 |
week | Номер недели | week(parseDate("2023-01-02")) = 1 |
month | Месяц | month(parseDate("2023-07-10T17:35Z")) = 7 |
year | Год | year(now()) = 2023 |
dateAdd | Добавление времени | dateAdd(now(), 1, "days") = @August 31, 2023 5:55 PM
dateAdd(now(), 2, "months") = @October 30, 2023 5:55 PM
dateAdd(now(), 3, "years") = @August 30, 2026 5:55 PM |
dateSubtract | Вычитание времени | dateSubtract(now(), 1, "days") = @August 29, 2023 5:55 PM
dateSubtract(now(), 2, "months") = @June 30, 2023 5:55 PM
dateSubtract(now(), 3, "years") = @August 30, 2020 5:55 PM |
dateBetween | Разница между датами | dateBetween(now(), parseDate("2022-09-07"), "days") = 357
dateBetween(parseDate("2030-01-01"), now(), "years") = 6 |
dateRange | Диапазон дат | dateRange(prop("Start Date"), prop("End Date")) = @September 7, 2022 → September 7, 2023 |
dateStart | Начало диапазона дат | dateStart(prop("Date Range")) = @September 7, 2022
dateBetween(dateStart(prop("Date Range")), dateEnd(prop("Date Range")), "days") = -365 |
dateEnd | Конец диапазона дат | dateEnd(prop("Date range")) = @September 7, 2023
dateBetween(dateEnd(prop("Date Range")), dateStart(prop("Date Range")), "days") = 365 |
timestamp | Текущий метка времени Unix | timestamp(now()) = 1693443300000 |
fromTimestamp | Дата из метки времени Unix | fromTimestamp(1689024900000) = @July 10, 2023 2:35 PM |
formatDate | Форматирование даты | formatDate(now(), "MMMM D, Y") = "August 30, 2023"
formatDate(now(), "MM/DD/YYYY") = "08/30/2023"
formatDate(now(), "HH:mm A") = "17:55 PM" |
parseDate | Парсинг даты | parseDate("2022-01-01") = @January 1, 2022
parseDate("2022-01-01T00:00Z") = @December 31, 2021 4:00 PM |
name | Имя | name(prop("Created By"))
prop("Pioneers").map(name(current)).join(", ") = "Grace Hopper, Ada Lovelace" |
email | Email | email(prop("Created By"))
prop("People").map(email(current)).join(", ") |
at | Элемент по индексу | at([1, 2, 3], 1) = 2
at(["a", "b", "c"], 0) = "a" |
first | Первый элемент | first([1, 2, 3]) = 1
first(["a", "b", "c"]) = "a" |
last | Последний элемент | last([1, 2, 3]) = 3
last(["a", "b", "c"]) = "c" |
slice | Выделение подсписка | slice([1, 2, 3], 1, 2) = [2]
slice(["a", "b", "c"], 1) = ["b", "c"] |
concat | Конкатенация списков | concat([1, 2], [3, 4]) = [1, 2, 3, 4]
concat(["a", "b"], ["c", "d"]) = ["a", "b", "c", "d"] |
sort | Сортировка списка | sort([3, 1, 2]) = [1, 2, 3]
sort(["banana", "apple", "orange"]) = ["apple", "banana", "orange"] |
reverse | Реверс списка | reverse(["green", "eggs", "ham"]) = ["ham", "eggs", "green"] |
join | Объединение элементов в строку | join(["a", "b", "c"], ", ") = "a, b, c"
join(["dog", "go"], "") = "doggo" |
split | Разбиение строки на список | split("apple,pear,orange", ",") = ["apple", "pear", "orange"]
split("one two three", " ") = ["one", "two", "three"] |
unique | Уникальные значения в списке | unique([1, 1, 2]) = [1, 2]
unique(["apple", "orange", "apple", "banana"]) = ["apple", "orange", "banana"] |
includes | Содержит элемент | includes(["a", "b", "c"], "b") = true
includes([1, 2, 3], 4) = false |
find | Поиск элемента | find(["a", "b", "c"], current == "b") = "b"
find([1, 2, 3], current > 100) = Empty |
findIndex | Индекс первого элемента | findIndex(["a", "b", "c"], current == "b") = 1
findIndex([1, 2, 3], current > 100) = -1 |
filter | Фильтрация элементов | filter([1, 2, 3], current > 1) = [2, 3]
filter(["a", "b", "c"], current == "a") = ["a"] |
some | Хотя бы один элемент удовлетворяет | some([1, 2, 3], current == 2) = true
some(["a", "b", "c"], current.length > 2) = false |
every | Все элементы удовлетворяют | every([1, 2, 3], current > 0) = true
every(["a", "b", "c"], current == "b") = false |
map | Преобразование каждого элемента | map([1, 2, 3], current + 1) = [2, 3, 4]
map([1, 2, 3], current + index) = [1, 3, 5] |
flat | Выравнивание списка списков | flat([1, 2, 3]) = [1, 2, 3]
flat([[1, 2], [3, 4]]) = [1, 2, 3, 4] |
Сравнение и логика | ㅤ | ㅤ |
equal | Равенство | equal(1, 1) = true
"a" == "b" = false |
unequal | Неравенство | unequal(1, 2) = true
"a" != "a" = false |
Переменные и присваивание | ㅤ | ㅤ |
let | Присваивание и вычисление | let(person, "Alan", "Hello, " + person + "!") = "Hello, Alan!"
let(radius, 4, round(pi() * radius ^ 2)) = 50 |
lets | Присваивание нескольких значений | lets(a, "Hello", b, "world", a + " " + b) = "Hello world"
lets(base, 3, height, 8, base * height / 2) = 12 |
вот пять примеров сложных формул в Notion, которые могут включать в себя различные свойства, функции и операторы:
- Сложная формула с использованием условий и математических операторов:
Эта формула удваивает оценочное время задачи, если её приоритет высокий.
- Формула для расчета суммы чисел в связанной базе данных:
Эта формула суммирует усилия по всем связанным задачам в базе данных.
- Сложная формула для форматирования текста с использованием стилей:
Эта формула выделяет и подчеркивает жирным синим текст, добавляя серый фон.
- Формула для вычисления возраста на основе даты рождения:
Эта формула определяет возраст, сравнивая текущую дату с датой рождения.
- Использование встроенных функций для обработки списков:
Эта формула объединяет и уникализирует навыки из двух различных свойств, создавая строку с разделителями.
Эти примеры демонстрируют разнообразные возможности формул в Notion, от управления данными и условным форматированием до обработки дат и списков.
Формулы - одна из самых сложных тем в Notion, но как только вы научитесь их использоваться, вы откроете кучу возможностей. Удачи в формулировании…