昨天看了 Bulletproof Task Management in Notion,其中 Tasks 数据库中有一个字段叫做 Priority,用于根据 Urgency, Impact, Workload, Enjoyment 四个字段来计算一项任务的优先级:

Projects Database Task Prioritizer

根据视频及原文中提到的The Eisenhower Matrix可以知道,作者将 Matrix 中的两个维度共四种情况分为 4 个优先级:1, 2, 3, 4,数字越小优先级越高:

Eisenhower Matrix

根据Task Database中的设置,优先级共分为四个维度:

  • Urgency
  • Impact
  • Workload
  • Enjoyment

每个维度均有 High, Medium, Low 三种程度。四个维度各有权重,最终计算出 Priority 项的值。

原文及视频中没有给出具体的计算方式,但根据视频中已有的 5 条记录,我们可以利用解方程的方式计算出每个维度的权重:

Prioritizer

假设 High的优先级为 1,Medium的优先级为 2,Low的优先级为 3,设四个维度的权重分别为\(a, b, c, d\)。我们可以看到图中有几个特殊的Priority值:1.671.832.67,显然这是分数没有除尽而造成的截取误差。我们可以得到:

$$ \begin{aligned} \begin{array}{l} 1.67 &\approx& 1.6666666666… &=& \frac{5}{3} \\[2ex] 1.83 &\approx& 1.8333333333… &=& \frac{11}{6} \\[2ex] 2.67 &\approx& 2.6666666666… &=& \frac{8}{3} \end{array} \end{aligned} $$

如此一来,由前四行我们可以得到方程组:

$$ \begin{aligned} \left\{ \begin{array}{l} 2a &+& b &+& 2c &+& 3d &=& \frac{3}{2} \\[2ex] 3a &+& b &+& c &+& 3d &=& \frac{5}{3} \\[2ex] a &+& 2b &+& 3c &+& 2d &=& \frac{11}{6} \\[2ex] 3a &+& 2b &+& 3c &+& 2d &=& \frac{5}{2} \end{array} \right. \end{aligned} $$

求解可得: $$ \begin{aligned} \left\{ \begin{array}{l} a &=& \frac{1}{3} \\[1ex] b &=& \frac{1}{2} \\[1ex] c &=& \frac{1}{6} \\[1ex] d &=& 0 \end{array} \right. \end{aligned} $$

看样子作者认为享受程度不影响任务的完成🤣

总之,有了权重之后,我们就可以将 Priority 的计算方式写进 formula:

round(
  (
    if(
      prop("Urgency") == "Low", 
      3, 
      if(
        prop("Urgency") == "Medium", 
        2, 
        1
      )
    ) / 3 + 
    if(
      prop("Impact") == "Low", 
      3, 
      if(
        prop("Impact") == "Medium", 
        2, 
        1
      )
    ) / 2 + 
    if(
      prop("Workload") == "Low", 
      3, 
      if(
        prop("Workload") == "Medium", 
        2, 
        1
      )
    ) / 6
  )* 100
) / 100

单行版本:

round((if(prop("Urgency") == "Low", 3, if(prop("Urgency") == "Medium", 2, 1)) / 3 + if(prop("Impact") == "Low", 3, if(prop("Impact") == "Medium", 2, 1)) / 2 + if(prop("Workload") == "Low", 3, if(prop("Workload") == "Medium", 2, 1)) / 6) * 100) / 100

完成!🎉