stl语言如何做一个数据筛选的函数(运用ln函数设置Notion的任务推送优先级)

身为现代社畜,自然免不了被多任务无情轰炸的命运。每一个996打工人都必须学会分清轻重缓急,有条不紊地完成大小Boss交待的各色任务。

Notion的ToDo已经有很多模板了,但如何合理地安排任务池中ToDoList的优先级,让工作自动按轻重缓急进行排序并推送,似乎还不够理想。

按工作重要性和紧急程度划分四象限的原理,可以将任务进行优先级评分。根据个人对任务的重视程度,可以对重要性进行赋值,但工作紧急程度怎么设置更为合理呢?

依照我们大多数人的工作习惯,简单任务提前一两天提醒,就可以了;重要的或者工作量较大的任务提前一两周,就比较合适;远期任务如年度计划什么的,拆分为多个小目标会更好。所以,更贴近实际工作习惯的提醒时间点为紧急任务的deadline当天或者前后两三天,重要任务提前一周或者大半个月,两个月之后的远期工作规划基本上是暂时不需要提醒的,超过deadline的工作如何老板仍在催要的,紧急程度肯定是要更上层楼的。

deadline剩余天数的计算很容易实现,Notion的dateBetween()函数可以轻松实现——

dateBetween(prop("Deadline"), now(), "days")

获得剩余天数后,如何实现不规则的紧急程度提示呢?比较了多种函数之后,最终选择的是ln()函数。我们已知:

ln(1)=0

ln(2)=0.6

ln(3)=1.1

ln(8)=2.1

ln(21)=3.0

ln(55)=4.0

ln(149)=5.0

……

通过自然对数的模拟,可以较好地拟合按工作紧急程度进行提醒的需求。

但测试中发现由于“ln(0)=∞”,所以会出现deadline当天报错的情形,因此特别“ 0.5”天,避免ln(0)的情形出现,令函数不再报错。最终任务随日期变化紧急程度的函数设置为——

if(prop("Deadline") < now(), 7, floor(5 - ln(abs(dateBetween(prop("Deadline"), now(), "days") 0.5))))

stl语言如何做一个数据筛选的函数(运用ln函数设置Notion的任务推送优先级)(1)

简单地来说,就是根据当下距离deadline的时间,按自然对数ln函数设计紧急程度——

  1. 今天deadline或者已经过了deadline的是最高紧急程度7级
  2. 明天到期的是5级
  3. 3天之后的是4级
  4. 7天之后是3级
  5. 3周之后的是2级
  6. 2个月之后完成的降为1级
  7. 5个月之后的事情是0级

引入ln函数的紧急程度设计基本贴合个人工作需求,再加上工作责任和任务的重要等级,就可以较好地进行任务重要性和紧急程度的排序和优先级排序了。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页