excel按系数分滩问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 18:30:27
A已有20元,系数是0.5
B已有30元,系数是2.0
C已有35元,系数是0.5
D已有20元,系数是2.0
要从ABCD中扣100元,这样按系数分配,A扣10,B扣40,C扣10,D扣40
可是这样分配后 面临一个问题B原来只有30元,分配要扣40元(D也只有20元,要扣40元,这样)这样就没钱了,有负数了,那就只有把这B负10,D负20的30元再分给还有剩钱的C,D了.这样怎么分啊,一步步算好麻烦的.
先谢谢各位!!!但我要的是结果!ABCD按各自的系数各扣了多少!总的要扣出100元来.扣的没钱了就别人来出!!!就是分配分配再分配,第一次先分,大家都有钱就好办了.但就是有些人没钱了,这样就要再次分配给还有钱的人了.没钱没办法.有钱的就要公平的分下去.总的就是要从ABCD中扣出这么多钱来的...

最好是用自定义函数
我用辅助列做了一个出来,直接用公式还没想出来,不过公式肯定会很长
公式OK了:
多单元格数组公式,选定C1:C4,=($A$1:$A$4-($A$5-SUMPRODUCT(NOT(N(MMULT(TRANSPOSE(IF(MMULT($B$1:$B$4,TRANSPOSE($A$1:$A$4/$B$1:$B$4))<$A$1:$A$4,MMULT($B$1:$B$4,TRANSPOSE($A$1:$A$4/$B$1:$B$4)),$A$1:$A$4)),ROW($A$1:$A$4)^0)>$A$5))*$A$1:$A$4))*$B$1:$B$4/SUMPRODUCT(N(MMULT(TRANSPOSE(IF(MMULT($B$1:$B$4,TRANSPOSE($A$1:$A$4/$B$1:$B$4))<$A$1:$A$4,MMULT($B$1:$B$4,TRANSPOSE($A$1:$A$4/$B$1:$B$4)),$A$1:$A$4)),ROW($A$1:$A$4)^0)>$A$5)*$B$1:$B$4))*N(MMULT(TRANSPOSE(IF(MMULT($B$1:$B$4,TRANSPOSE($A$1:$A$4/$B$1:$B$4))<$A$1:$A$4,MMULT($B$1:$B$4,TRANSPOSE($A$1:$A$4/$B$1:$B$4)),$A$1:$A$4)),ROW($A$1:$A$4)^0)>$A$5)
数组公式按CTRL+SHIFT+ENTER结束
其中A1:A4为现有资金,B1:B4为系数,A5为要扣的
如果你要在C1输入公式往下拉的话,就在外面套一层INDEX函数吧

公式里面N(MMULT(TRANSPOSE(IF(MMULT($B$1:$B$4,TRANSPOSE($A$1:$A$4/$B$1:$B$4))<$A$1:$A$4,MMULT($B$1:$B$4,TRANSPOSE($A$1:$A$4/$B$1:$B$4)),$A$1:$A$4)),ROW($A$1:$A$4)^0)>$A$5)出现了三次,搞的公式很长,最好是定义成名称或用辅助列

一笔糊涂账。