Notion if公式是所有公式中最常用的一个。if()
公式是一个条件语句,它可以判断条件是否成立,然后根据条件成立与否返回不同的值。
if公式语法
if([条件], [条件成立时返回值1], [条件不成立时返回的值2])
//此处条件应为布尔值(即true或false),如果条件为true则返回值1,条件为false则返回值2
//注意:值1和值2的数据类型必须相同,即符合以下语法
if(Boolean, Boolean, Boolean)
if(Boolean, String, String)
if(Boolean, Number, Number)
if(Boolean, Date, Date)
if()
的形式看上去像函数,但在Notion中它其实是一个操作符,而且是一个三元操作符——即需要接收3个参数才能生效。以下是对if()操作符三个参数的详细解析:
[条件]
:第一个参数是布尔(Boolean)类型,该数据类型只包含两个值,即“真”(True)和“假”(False)。当参数值为True时,说明条件成立;当参数值为False时,说明条件不成立。(如:1==1
即为 True,1==2
即为 False)[条件成立时返回值1]
:当第一个参数给出的条件成立时,返回第二个参数的值;[条件不成立时返回值2]
:当第一个参数给出的条件不成立,返回第三个参数的值。
if公式使用案例
比较字符串是否相同
假如我们现在有一份工作事项清单,里面有多项紧急程度不同的事项,分为紧急和一般2个等级,如下图所示:
现在我们想再新建一个数值类型的属性,用来判断当前事项的紧急程度,如果紧急则数值为2,如果一般则数值为1。如下图所示:
此时我们需要利用if()
公式,判断事项的紧急程度是否等于“紧急”,如果是则返回1,否则返回2。公式如下:
if(prop("紧急程度 ") == "紧急", 2, 1)
比较数值大小
if公式除了可以比较数值是否相同外,还能比较数值大小。
新建一列,如果紧急程度大于1,则返回true,否则返回false。
if(prop("紧急程度(数值)") > 1, true, false)
if公式简写语法
if()
公式还有一种简写方式,不需要写英文,只需要使用符号 ?
和 :
即可。
简写语法:
[条件] ? [条件成立时返回值1] : [条件不成立时返回的值2]
if(Boolean, Boolean, Boolean)
if(Boolean, String, String)
if(Boolean, Number, Number)
if(Boolean, Date, Date)
?
左侧为第一个参数,即用来判断真假的条件;?
和:
之间的为第二个参数,如果条件为真则返回第二个参数的值;:
右侧为第三个参数,如果条件不成立则返回第三个参数的值。
以下两个公式都是if公式,它们表达的含义是完全相同的:
//默认语法
if(prop("紧急程度(数值)") > 1, true, false)
//简写语法
(prop("紧急程度(数值)") > 1) ? true : false
进阶用法:嵌套if
在实际工作中,if公式的用法会更加复杂,需要在if公式内嵌套更多的if公式。
举个最简单的例子,在下面的表格中,工作事项的紧急程度被分为了非常紧急、紧急和一般3个等级。我们希望创建一个新列,根据事项紧急程度赋予数值:非常紧急-3,紧急-2,一般-1。如下图所示:
这里用到的if嵌套公式如下:
if(prop("紧急程度 ") == "非常紧急", 3, if(prop("紧急程度 ") == "紧急", 2, 1))
//为了更容易理解,拆解公式如下
if(
prop("紧急程度 ") == "非常紧急",
3,
//当事项为非常紧急时,返回3,否则进入下一个if公式
if(
prop("紧急程度 ") == "紧急",
2,
1
)
)
前往Notion网页版查看公式代码示例
我为本文中的所有代码示例创建了Notion实例,感兴趣的读者可以通过下方链接前往Notion网页版进行查看或复制: