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

我有下面的表格设置

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 

另外,我还有一个约束条件,我只能在这里按照它们的产量排名总共分配2000美元 (所以如果有2000美元的剩余产品,那么更高的产量会把所有的东西都分配到limit列总)。

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

我打算假设这张桌子是从A1开始的

在E1中,把你必须分配的金额

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

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

这样可以计算出排名靠前的已经拿到了多less,剩下的就是剩下的数量,尽可能less的数量以及剩下的数量。
这个等式有一个缺点,你需要弄清楚如何处理:如果在分配的末尾有相等的等级,那么两者都会得到最终的数量。 (比如用2000美元来试试这个,你会看到那个排名为1的两行都会声明最后的美元)