如果你使用过类似Excel、Google Sheet等办公表格软件,你就会很容易理解什么是Notion公式。
Notion公式是遵循一定语法的英文代码串,它可以利用Database数据库中的属性、常量、操作符等完成一些复杂的计算或任务。
Notion公式使用实例
假如你现在管理着一个优惠券网站,网站上面有许多品牌,你需要定期检查这些品牌的优惠券是否过期并及时更新。
使用Notion公式可以帮助你更好地完成这件事情,正如下面这个表格所展示的一样:
通过下方链接可以查看和复制示例:
这个表格中的公式主要实现以下两个功能:
- 根据上一次检查时间,自动计算下一个检查日(每15日检查一次);
- 根据未来7天内是否需要检查,对表格进行分组(参考Notion分组功能)。
其中,自动计算下一个检查日的公式如下:
dateAdd(prop("上次检查时间"), 15, "days")
这里我们用到了 dateAdd()
函数,它可以在“上次检查时间”的基础上添加15天时间,然后得到“下次检查时间”。
下一个公式相对复杂一些,用来判断未来7天内是否需要进行检查,即“下次检查时间”距离现在是否小于或等于7天。
if(dateBetween(prop("下次检查时间"), now(), "days") <= 7, true, false)
//为了方便读者理解,我把公式重新进行排版:
if(
//if函数,如果条件成立,则返回第二个参数,否则返回第三个参数
dateBetween(
//dateBetween函数,用来计算两个日期之间的距离
prop("下次检查时间"),
//引用“下次检查时间”
now(),
//now()函数引用当前时间(编写日期2023年7月18日)
"days") <= 7,
//“days”参数指定时间间隔单位为“日”,间隔不大于7天则条件成立
true,
//条件成立返回true,即勾选状态
false
//条件不成立则返回false,即未勾选状态
)
在这里我们使用dateBetween()
函数计算下次检查日期与当前时间的间隔,然后用if()
函数判断时间间隔是否小于等于7天,如果是则返回true
(复选框打勾),否则返回false
(复选框空白)。
完成以上工作后,我们的“7天内需要检查”这一列就有了true
(勾选)和false
(未勾选)两个不同的值,最后一步便是分组:
如上图所示,你可以通过点击表格右上角的 ···
按钮,然后点击 Group
按钮进行分组设置。
用好Notion公式你需要学会这些术语
想要熟练使用Notion公式,并且能够根据工作要求编写公式,必须要了解以下这些要素和术语。
公式的组成要素
- Property – 属性,用来存放特定类型的数据。简单理解:数据库就是一个表格,那么“属性”就是表格中的列,用来存放对象的某一类信息;
- Constant – 常量,即一些用数学符号表示的常用数值。我们熟悉的常量有圆周率Π,自然常数e和布尔值(即true和false,1和0)等;
- Operator – 操作符,比如常见的+、-、*、/等,以及英文形式的add、not和逻辑运算符if等;
- Function – 函数,拿来即用,以精简的代码实现复杂的运算功能。常见的函数有concat(连接字符串)和dateAdd(指定日期加、减时间);
- Arguments – 参数,使用函数进行运算时要使用到的数据,由我们用户输入到函数的括号中。
公式的数据类型
Notion公式可以处理4种数据类型:
- String(字符串)- 即文本类型的数据;
- Number(数值);
- Boolean/Checkbox(布尔值/复选框) – 即0或1,true或false;
- Date(日期)。
理解不同数据类型的含义和区别非常重要。因为某些函数和运算符只能处理特定类型的数据,如果你不熟悉数据类型,那么即使你完全复制了其他人的公式代码,也可能会出错,而你甚至不知道出错的原因。
下面这个例子用来说明数据类型的重要性:
数据类型案例
我们以函数DateAdd()
为例,此函数需要接收3个参数:
- 参数1:日期类型(Date),函数将会在此日期上添加时间间隔;
- 参数2:数值类型(Number),指定时间间隔的长度;
- 参数3:字符串类型(String),指定时间间隔的单位。
在下图中,我输入的参数1数据类型为字符串,而不是日期类型,因此公式报错了。