常用公式示例 Permalink
本指南提供实际的公式示例,帮助您计算成本、组合数值、衡量时间、应用条件,并在 Quire 中整理任务数据。每个示例都展示了公式如何将原始的任务数据转化为有意义的洞察。
成本计算
要计算一个任务及其所有子任务的总成本,您需要两个自订字段:
- 创建一个 Cost 自订字段。
- 字段类型:Number
- 小数位数:2
- 创建一个 Total Cost 自订字段。
- 字段类型:Formula
- 输入以下公式:
SUM(subtasks.{Total Cost}, Cost)
该公式会将任务自身的成本加上其所有子任务的总成本。
了解您可以在 Quire 公式中使用的所有函数。
在一个字段中显示多个值
您可以使用 数组公式 一次显示或计算多个值。数组是由任务、数字或文本值等项目组成的集合。
示例: 在一个字段中显示指定的任务
[#2, #23]
它会以列表形式返回指定的任务。
提示: 您可以在公式中使用任务标识符 #task_ID 来指定任务。
数组计算
数组公式让您可以对多个项目同时应用相同的运算。
示例: 获取多个任务的到期日期
[#2, #23].due
这等同于:
[#2.due, #23.due]
使用数组能够减少重复,让公式更易阅读。
进一步了解 Quire 的数组公式,让您可以对一组数据进行列表展示或计算。
时长计算
您可以按不同单位计算两个日期之间的时长。
示例: 计算以天为单位的时长
(due - start).days
它会返回开始日期与到期日期之间的天数。
注意: 结果会向上取整到最接近的整数(即大于或等于实际值的最小整数)。例如,一小时的时长会被算作一天。
更精确的时长
如需更精确的结果,您可以调整公式。
示例: 将小时数换算为天数
(due - start).hours / 24
提取日期信息
您可以从日期字段中提取各个组成部分,例如:
- 年
- 月
- 日
- 时
- 分
- 秒
- 星期几
示例: 获取到期日期是星期几
due.weekday
注意: 星期几的值采用数字格式,其中 1 = 星期一,2 = 星期二,以此类推。
工作日计算
使用 WORKDAYS 函数计算两个日期之间的工作日天数。
WORKDAYS(start, due)
如果开始日期与到期日期为同一天,结果为 1 天。
使用今天的日期
示例:
WORKDAYS(<today>, <tomorrow>)
它会返回 2 天。
自定义周末设置
您可以自行定义哪些日子算作周末。
WORKDAYS(start, due, weekend)
将 weekend 替换为下表中的某个值:
| 周末代码 | 算作周末的日子 |
|---|---|
| 1 | 六、日 |
| 2 | 日、一 |
| 7 | 五、六 |
| 9 | 五、日 |
| 11 | 日 |
| 16 | 五 |
条件逻辑
您可以使用条件运算符 ?: 根据条件返回不同的结果,其作用类似于 IF 语句。
您可以设定两个结果:当条件为真时显示第一个结果,为假时显示第二个结果。
示例:根据花费的时间显示状态指示器(当任务上花费的总时间超过 5 小时时)
timeSpent > 5h ? "🔴" : "🟢"
- 条件:
timeSpent > 5h - 为真时的结果:🔴
- 为假时的结果:🟢
排序与排列值
使用 SORT 函数将值按升序排列。
例如,假设有 4 个子任务,它们的到期日期分别为 9 月 1 日、8 月 23 日、9 月 1 日、7 月 30 日:
SORT(subtasks.due)
结果:它会将子任务的到期日期从最早到最晚排序,并在字段中列出所有到期日期。
Jul 30, Aug 23, Sep 1, Sep 1
移除拷贝
将 SORT 与 DISTINCT 函数结合使用。
您可以在结果中看到有两个子任务的到期日期相同(9 月 1 日)。 试试看:
DISTINCT(SORT(subtasks.due))
结果:
Jul 30, Aug 23, Sep 1
按到期日期排序
使用 order by 运算符。
subtasks order by any.due
它会查找子任务并按其到期日期进行排序。
注意: 您可以将 any 标识符与 order by 运算符结合使用,用于指定希望依据哪个字段进行排序。
了解您可以在 Quire 公式中使用的所有不同的运算符和函数。
常见问题
如何在单个 Quire 公式字段中显示多个任务的值?
使用数组语法——[#2, #23].due 会以列表形式返回任务 #2 和 #23 的到期日期。更多内容请参阅 Quire 的数组公式。
如何在 Quire 中计算一个任务及其子任务的总成本?
创建一个名为 “Cost” 的 Number 字段和一个名为 “Total Cost” 的 Formula 字段,然后输入 SUM(subtasks.{Total Cost}, Cost)。
如何在 Quire 中计算任务从开始日期到到期日期之间的天数?
使用 (due - start).days 得到整数天数(向上取整),或使用 (due - start).hours / 24 获得更精确的结果。
如何在 Quire 中计算两个日期之间的工作日天数?
使用 WORKDAYS(start, due)。将周末代码作为第三个参数传入,即可自定义哪些日子算作周末——例如,WORKDAYS(start, due, 7) 会将星期五和星期六视为周末。
如何在 Quire 公式中提取日期的特定组成部分(如星期几或月份)?
使用点表示法——due.weekday 会返回星期几的数字(1 = 星期一,7 = 星期日)。同样的写法也适用于年、月、日、时、分和秒。
如何在 Quire 中编写条件公式?
使用 ?: 运算符——timeSpent > 5h ? "🔴" : "🟢" 会在花费的时间超过 5 小时时显示红色指示器,否则显示绿色。
如何使用 Quire 公式对子任务的值进行排序?
使用 SORT(subtasks.due) 从最早到最晚排序。用 DISTINCT() 包裹以移除拷贝:DISTINCT(SORT(subtasks.due))。