跳到主要内容

我想自动判断一条任务的状态怎么做?

视频介绍

四个案例

案例一:根据时间判断任务状态

表格结构如下图,希望通过“计划完成时间”与“实际完成时间”两列,来综合判断出当前的任务状态。: 如未填写计划完成时间,则提示“未填写计划完成时间”;
填写计划完成时间时,如未填写实际完成时间,则视为未完成任务,提示"未完成";
如果未完成任务,同时举例计划完成时间又少于3天时,提示"还剩不到3天就要截止啦";
如果填写了实际完成时间,则视为完成任务,同时与计划完成时间做对比,分别提示"超时完成"或"按时完成"。

最终公式如下:

IF({计划完成时间},IF({实际完成时间},IF({实际完成时间}>{计划完成时间},"超时完成","按时完成"),IF(DATETIME_DIFF({计划完成时间},NOW())<3,"还剩不到3天就要截止啦","未完成")),"未填写计划完成时间")

案例二:根据时间判断任务状态

表结构如下图,多选列为每条任务的多个必经流程,并且1~4为顺序流程,此时希望能够通过智能公式判断出当前任务所处的最新流程:
如在多选中选择了流程1~4,则当前状态为流程4;
如在多选中选择了流程1~3,则当前状态为流程3;
同理,只显示最新的流程状态;
如果没有任何选项,则显示为未开始。

最终智能公式如下:

IF(FIND("流程4",{多选}),"流程4",IF(FIND("流程3",{多选}),"流程3",IF(FIND("流程2",{多选}),"流程2",IF(FIND("流程1",{多选}),"流程1","未开始"))))

案例三:根据时间与文本进行综合判断

表结构如图所示,根据时间与任务状态列,进行更精细化的任务状态判断:
如当任务状态未选择时,任务未开始,此时根据当前时间与计划开始时间的对比结果,分别显示为"未按时开始"与"未开始";
当任务状态选择已开始时,则提示“已开始”,同时,如果临近计划完成时间小于3天,则提示"还剩不到3天就要截止啦";
当任务状态为已完成时,则视为完成任务,同时将实际完成时间与计划完成时间做对比,分别提示"超时完成"或"按时完成"。

最终智能公式如下:

IF({任务状态},IF({任务状态}="已开始",IF(DATETIME_DIFF({计划完成时间},NOW())<3,"还剩不到3天就要截止啦","已开始"),IF({实际完成时间}>{计划完成时间},"超时完成","按时完成")),IF(NOW()>{计划开始时间},"未按时开始","未开始"))

案例四:根据多个时间进行判断

表结构如图所示,希望根据实际完成时间、计划完成时间、计划开始时间、实际开始时间之间关系来进行任务状态判断:
当填写了实际完成时间,则视为完成任务,同时将实际完成时间与计划完成时间做对比,分别提示"超时完成"或"按时完成";
当填写了实际开始时间,则提示“已开始”,则对比实际与计划的开始时间,分别提示"按时开始","超时开始"; 如未填写实际开始时间,则视为未开始。

最终智能公式如下:

IF({实际完成时间},IF({实际完成时间}>{计划完成时间},"超时完成","按时完成"),IF({实际开始时间},IF({计划开始时间}>{实际开始时间},"按时开始","超时开始"),"未开始"))

其他

在上述几个案例中,并非穷举了所有任务状态的可能情况,其实仍能够进行进一步的细分;同时,对于公式中的某些字段还可以进行是否为空的校验。因本篇内容篇幅有限,并未做详细教学,各位用户可根据实际情况对智能公式进行调整。