使用Excel Rank()函数根据排名和约束计算分配

时间:2013-07-16 15:56:28

标签: excel excel-formula

我已设置以下表格

Limit  Allocation  Yield    Ranking
$600    [to calc]   0.07%    7
$600                0.09%    6
$600                0.20%    1
$400                0.20%    1
$400                0.13%    4
$200                0.19%    3
$200                0.12%    5

此外,我有一个约束,我只能通过它们的收益排名在这7行中分配总计 $ 2000 (所以更高的收益率会将所有内容分配到{ {1}}列,如果总计2000美元中有任何遗留物)。

我想知道如何设置方程式以便它可以自动执行分配。谢谢!

2 个答案:

答案 0 :(得分:2)

我打算假设这张桌子在A1开始......

在E1中,输入您必须分配的金额

在B2中(然后复制到B3 ... B8)使用以下公式

=MIN(A2,$E$1-SUMIF($D$2:$D$8,">"&D2,$B$2:$B$8))

这将解决排名较高的人已经采取了多少,并采取其余的,直到他们的限制的较少量,以及在底池中留下的内容。
这个等式有一个错误,你需要弄清楚如何处理: 如果在分配结束时排名相同,则两者都将获得最终金额。 (例如,尝试使用$ 2,001,然后您会看到排名 1 的2行都会声明最终的美元)

答案 1 :(得分:-2)

解决导致等级问题的联系。在等级列D中,将等级添加到等级= rank(c2,$ c $ 2:$ c $ 8,0)+(.0000001 * row(a2))或您所在的任何行中。然后将等级列格式化为显示整数。这样做将使排名中的小数点后十位数成为平局,因此具有排名匹配整数的第一行将进行分配。由于您是将其添加到排名中,因此不会影响任何总数。通过将列格式显示更改为整数,观看者将不会意识到平局。