我有一个自己维护的任务列表电子表格。每项任务都根据距离截止日期的天数进行排名,并按高、低或中优先级加权。排名是自动计算的,结果列表会手动排序,以按优先级顺序生成当前待办事项列表。
理想情况下,我希望在工作表中设置第二个选项卡,显示第一个选项卡中的数据,并即时对其进行排序。例如,如果我输入了今天截止且优先级较高的新任务,我可以翻到工作表 2,它会自动排到列表顶部。
第一页(如输入的一样;数字是计算的重量)
Task 01, 06/20/2013, Low, 0009
Task 02, 06/20/2013, High, 0999
Task 03, 06/30/2013, Med, 0089
Task 04, 06/19/2013, High, 1000 <-- new entry
第二表(自动排序,按计算重量降序排列)
Task 04, 06/19/2013, High, 1000
Task 02, 06/20/2013, High, 0999
Task 03, 06/30/2013, Med, 0089
Task 01, 06/20/2013, Low, 0009
我们公司正在从 2007 版过渡到 2010 版,所以我想确保所有解决方案都适用于这两个版本。有什么想法吗?
答案1
Excel 可以轻松完成此类任务。您甚至不需要第二张工作表(尽管您当然可以使用一张)。
- 将您的任务列表转换为表格
Insert>Tables>Table
。 - 在计算权重列中,使用下拉箭头并选择从大到小排序。
- 每次向表中添加一行时,只需重新排序,您将始终获得最高优先级。
表格和相关数据透视表的外观如下。您可以根据自己的喜好将它们放在同一张或单独的工作表上。
或者,您可以让此表为数据透视表提供数据,该数据透视表将始终以相同的方式排序,但每当您更新原始数据表时,您仍然必须刷新数据透视表(无论是手动还是根据时间段或打开的工作簿自动更新)。此功能在 2007 和 2010 中均可用。
答案2
这就是动态排序数据的方式。第一个显示结果,而第二个显示使用的公式。不要担心“C”列是一堆随机数。那只是您不必理解的日期转换器。它就像日期的计算机公式之类的东西。无论如何,VLookup 都差不多,所以很容易。排名列需要是最左边的列。由于您输入了 0009 和所有其他疯狂的数字,我不得不将它们写为文本而不是数字。因此,我无法使用排名对它们进行排序。所以我创建了“F”列,将文本 0009 转换为数字格式的 9。我使用了 Value 函数来做到这一点。这几乎涵盖了它。现在,如果您不想看到 A、F 和 G 列,您可以隐藏它们。只需按住控制按钮,然后单击列标签上的实际字母 A、F 和 G,选择 A、F 和 G 的整个列。然后只需右键单击其中一列并找到隐藏的位置。
抱歉,我想发布此图片的屏幕截图,但该网站不允许新用户发布图片。这是输出表。我跳过了其他列,因为它们会占用本网站的太多空间,而且它们几乎与 G 列和 H 列完全相同,所以您应该不难弄清楚。
A| B| C| D| E| F| G| H| I|
Rank| Tasks| Date| H-L| w-text| w-num| FinRank| VLookup| VLookup|
4| Task 01| 6/19/2013| Low| 0009| 9| 1| Task 04| 6/19/2013|
2| Task 02| 6/20/2013| High| 0999| 999| 2| Task 02| 6/20/2013|
3| Task 03| 6/30/2013| Med| 0089| 89| 3| Task 03| 6/30/2013|
1| Task 04| 6/19/2013| High| 1000| 1000| 4| Task 01| 6/19/2013|
以下是公式
A 列中显示 4:=RANK(F2,$F$2:$F$5,0)
A 列中显示 2:=RANK(F3,$F$2:$F$5,0)
等等等等...
B、C、D 和 E 列只是您输入的文本。
F 列中显示 9:=VALUE(E2)
F 列中显示 999: =VALUE(E3)
等等等等
G 列只是从 1 到您想要的任何数字的数字。 您只需输入它们即可。 您需要这个来执行 VLookup。
H 列,第一行:=VLOOKUP(G2,$A$2:$F$5,2,FALSE)
H 列,第二行:=VLOOKUP(G3,$A$2:$F$5,2,FALSE)
等等等等...
其余列与 H 列相同。I
列第 1 行如下所示: =VLOOKUP(G2,$A$2:$F$5,3,FALSE)
J 列第 1 行如下所示: =VLOOKUP(G2,$A$2:$F$5,4,FALSE)
K 列第 1 行如下所示: =VLOOKUP(G2,$A$2:$F$5,5,FALSE)
*看看它们之间只有 1 个差异?很简单,对吧?