Twilo
Опубликовано 5 января, 2024

Шпаргалка по формулам в Notion

Аватар - Леонид Мишин
Леонид МишинCEO & Founder в Twilo
Шпаргалка по формулам в Notion
Шпаргалка по формулам в Notion
Хотите получать новости?
Статьи, гайды, шаблоны, Notion AI и полезные материалы по Notion на русском языке ❤️
📄

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, которые могут включать в себя различные свойства, функции и операторы:
  1. Сложная формула с использованием условий и математических операторов:
    1. Эта формула удваивает оценочное время задачи, если её приоритет высокий.
  1. Формула для расчета суммы чисел в связанной базе данных:
    1. Эта формула суммирует усилия по всем связанным задачам в базе данных.
  1. Сложная формула для форматирования текста с использованием стилей:
    1. Эта формула выделяет и подчеркивает жирным синим текст, добавляя серый фон.
  1. Формула для вычисления возраста на основе даты рождения:
    1. Эта формула определяет возраст, сравнивая текущую дату с датой рождения.
  1. Использование встроенных функций для обработки списков:
    1. Эта формула объединяет и уникализирует навыки из двух различных свойств, создавая строку с разделителями.
Эти примеры демонстрируют разнообразные возможности формул в Notion, от управления данными и условным форматированием до обработки дат и списков.
Формулы - одна из самых сложных тем в Notion, но как только вы научитесь их использоваться, вы откроете кучу возможностей. Удачи в формулировании…