公式 #

在Notion数据库中,你可以添加一个公式属性,让你根据其他属性来运行各种计算和函数。就像在 Excel 或Google Sheets 中一样,你可以在 Notion 中使用公式来得出许多其他有用的值。

公式术语 #

写公式最难的事情是理解所有的术语! 以下是在 Notion 中使用公式时最常见的词及其含义:

  • Function 函数: 从一组输入到一组可能的输出的关系,其中每个输入仅与一个输出有关。

  • Syntax 语法: 公式中的字母和术语的顺序,以返回正确的值。

  • Argument 参数: 函数中的任何输入,如一个属性。

  • String 字符串: 一种值类型,最常指的是文本(即一串彼此相邻的字母)。在公式中,字符串始终用引号引起来。

    • 字符串不同于其他值类型,例如 number 或 dates。
    • 子字符串是指较大字符串的一段。“No”是“Notion”的字符串。
  • Boolean 布尔值: 布尔值要么为真,要么为假。

  • Concatenate 拼合: 将两个字符串拼在一起。

    • 例如: concat("add", "text") 的结果是 "addtext"

应用 #

下面是一个将上述所有内容联系起来的例子。concat("add", "text").

  • concatfunction 函数,它的功能是对其括号中的输入进行某种计算或操作。
  • "add""text"是该函数的 arguments 参数

函数可以使用各种不同的参数,例如 checkboxes(也称为 booleans 布尔值)、numbers 或 dates。 函数的 Syntax 语法 会要求将字符串括在引号中,并将其参数包含在括号中。

编写一个公式 #

  • 首先在你的数据库中,添加一个新的属性,给它起一个名字,然后从 Property Type 属性类型 菜单中选择 Formula 公式
  • 然后告诉公式要对一个属性做什么,请输入一个将使用该属性的函数。
  • 属性的操作很像公式中的变量。使用你给它们起的名字。
  • 你可以像在数字计算器中那样输入函数(还记得吗)。注意不要忘记属性周围的括号和引号。
  • 例子:计算到 21 岁有多少年?
    • 假设你的数据库中有一个叫做 Age 的 number 属性,你想让你的公式显示每个人离 21 岁还有多少年。
    • 输入 21 - prop("Age") 以返回数据库中每个人的年龄属性中的 21 减去的结果。

公式菜单 #

每当你编辑一个公式属性时,公式窗口就会弹出,其左边的侧边栏菜单有以下几部分。

  • 属性 Property 列出所有在你的数据库中的属性。点击其中任何一个,就可以将其插入到你的公式中。
  • Constants 常数 常见的常数,如 π。点击任何一个就可以将其添加到你的公式中。
  • Operators 操作符 你可以运行的简单计算,它们左边的图标显示了它们的适用的属性类型。例如,减法和加法适用于 number 属性。
  • Functions 函数 你可以在 Notion 中运行更复杂的预定义公式。它们左边的图标也会显示它们所支持处理的属性类型。
  • 在窗口顶部的文本框中开始输入任何这些内容来搜索你需要的东西。
  • 您也可以使用箭头键上下滚动。

🎒 提示

将鼠标悬停在侧边栏的任何一个术语上,以获得它们如何工作的完整定义和如何使用它们的例子。

  • 例子:计算截止日期前的剩余天数
    • 假如我们有一个带有截止日期的任务数据库。我们的目标是计算出从现在到截止日期之间还有多少天。
    • 对于数据库中的每个任务都有一个日期属性 deadline 代表中着截止日期。
    • 然后添加一个新的属性,从 Property Type 属性类型 菜单中选择 Formula 公式。给它命名为 剩余天数
    • 点击 剩余天数 下的单元格,就会弹出公式窗口。
    • 在提供的文本框中,输入date,以调出与日期有关的命令。dateBetween() 看起来很有帮助 ,它会返回两个日期之间的时间。
    • 根据这个函数的说明,你需要给它两个日期和一些文本:你的截止日期现在的日期,以及你希望这两个日期之间的范围用什么单位表示(年、月、日等)。
    • dateBetween()函数中插入你的截止日期,方法是点击你的公式侧边栏顶部的属性 Property,或者输入它。prop("Deadline").
    • 现在我们的公式看起来应该像dateBetween(prop("Deadline"))。让我们寻找一种方法来获取今天的日期。now()看起来很有用,因为它应该返回当前日期。
    • 下面是如何完成这个函数。
    • 首先,添加一个逗号,告诉函数我们要找到截止日期和现在之间的时间。dateBetween(prop("Deadline"), now())
    • 接下来,根据函数的指示,定义我们希望显示结果的时间单位。dateBetween(prop("Deadline"), now(), "days")
    • 最后,点击Done,将函数应用到你的数据库。
    • 完成了! 现在你知道离最后期限还有多少天了 🙌

常见的例子 #

我们在这里汇总了一些常见的公式例子以及如何编写它们👇

自动复选框 #

你可以写一个公式,使你数据库中的一个复选框根据另一个属性的值被选中或不被选中。

  • 目标: 如果Priority是空的或包含 "Important" 这个词,则选中该复选框。
    • 公式: or(empty(prop("Priority")), prop("Priority") == "Important")

这个也适用于数据库中的Select属性。在这个例子中,如果在Select属性中放入 "Option 1",就会选中一个方框。

  • equal(prop("Select"), "Option 1").

日期计算 #

在你的数据库中使用一个日期属性,你可以计算出各种范围。

  • 目标: 在 "Years Employed 受雇年限" 下显示 Doug 迄今为止受雇的年限。

    • 公式: dateBetween(now(), prop("Start Date"), "year")
  • 目标: 在 "Years Remaining 剩余年数" 下显示 Doug 还能工作的年数。

    • 公式: dateBetween(prop("End Date"), now(), "years")
  • 目标: 在 "Formatted Text 格式化文本" 下显示 Doug 还剩下多少年和多少月的工作。

    • 公式: concat(format(prop("Years Employed")), " years, ", format(dateBetween(prop("End Date"), now(), "month"), " months")

四舍五入 #

这些公式可以用来以不同的方式对数字进行舍入。

  • 四舍五入到整数:round()包裹你的公式。
    • 例如:round(prop("One") / prop("Two"))
  • 四舍五入到小数点后:round(*10)/10包装你的公式。
    • 例如:round(prop("One") / prop("Two") * 10) / 10
  • 四舍五入到两位小数:round(*100)/100包裹你的公式。
    • 例如: round(prop("One") / prop("Two") * 100) / 100

在一个日期上添加工作日 #

取一个日期并在公式属性中自动识别星期。

  • formatDate(prop("Date"), "ddd, MMMM D, YYYY")

逾期警报 #

如果你已经过了一个到期日,就会自动勾选一个方框。这对个人CRM很有帮助,当你设定了下次要联系某人的日期而你却超过了这个日期。

  • prop("Due Date") < now()

🎒 提示

我们将继续从我们的团队和社区收集有用的公式。敬请关注! 如果你有一个要分享的,请把它发送给我们 [email protected]

故障排除 #

在使用公式时,你可能会遇到一些常见的错误信息。

  • Type mismatch: prop("Number") is not a Text

    • 这意味着你所使用的公式只想使用文本属性。
    • 作为一种变通方法,尝试用format()来包装你的数字属性。
    • 例子。 prop("Number") + prop("Text")将返回错误。 把它改成: format(prop("Number")) + prop("Text")
  • Too few arguments in function if

    • 这意味着你可能缺少一个 "else "语句。
    • 试着在公式的末尾添加, "")以增加 "else empty"。
    • 例如: if(prop("1") == "this", "that")将返回错误。把它改成: if(prop("1") == "this", "that", "")会返回错误。

常见问题 #

  • 有办法对关系或公式属性进行分组吗? 目前没有😓这是一个合法的用例,而且我们将来肯定会支持。