Excel 365
在下表中,我尝试在“已分配”下的 D 列中创建一个公式,该公式根据目标和分配百分比分配 D1 的分割,一旦分配的金额达到目标金额,它将停止接收任何进一步的分配,剩余的分配将停止。将分散到其他目标(使用剩余分配百分比的比例进行分配)
A | B | C | D | |
---|---|---|---|---|
1 | 节省 | 39000 | ||
2 | 目标名称 | 目标金额 | 分配% | 已分配 |
3 | 目标1 | 2,000,000 英镑 | 10% | £7,571 |
4 | 目标2 | 15,000 英镑 | 25% | £18,929 |
5 | 目标3 | 5,000 英镑 | 40% | 5,000 英镑 |
6 | 目标 4 | 7,500 英镑 | 25% | 7,500 英镑 |
我已经成功地制定了(强力)一个几乎有效的公式,我将尝试在下面分解我的逻辑,但希望有一个更好的方法,而不是试图修复我的。
我的公式取自D3:
=IF(B3<=$D$1*C3,B3,($D$1-SUMPRODUCT(($B$3:$B$6<=$C$3:$C$6*$D$1)*$B$3:$B$6))*(C3*(1/SUMPRODUCT(($B$3:$B$6>$C$3:$C$6*$D$1)*$C$3:$C$6))))
如果B3<=D1*C3,B3 this should set the allocated amount to be no higher than the target, this issue is that in the above example for row 4, 39k * 0.25 = 9,750 meaning this IF returns a false.
$D$1-SUMProduct(($B$3:$B$6<=$C$3:$C$6*$D$1)*$B$3:$B$6)) calculates the sum of any row that would have returned a true above and deducts them from D1 to leave the remaining amount to allocate. In this case it sees row 5 & 6 as true so deducts 5k&7.5k from 39k to leave 26.5k
(C3*(1/SUMPRODUCT(($B$3:$B$6>$C$3:$C$6*$D$1)*$C$3:$C$6)))) 与上面类似来查找分配% 对于 if 来说是假的,并将它们加在一起。它将 1 除以该总和,得到适用于新 % 的原始分配 % 的因子,在本例中为 1/( 0.1 + 0.25) = 2.86
2.86 * 0.1 = 0.286
+
2.86 * 0.25 = 0.714
总计 = 1 (100%)
剩余的分配金额乘以新的百分比即可得到最终分配。
此问题不考虑此新分配是否使分配金额高于 D4 中所示的目标
我希望这是有道理的,我真的希望有人能回来提供一种非常明显的方法来做到这一点,而我所缺少的。
如有任何帮助,我们将不胜感激。