基于剩余值填充Projected单元格至目标值或耗尽剩余值的实现需求
剩余值分配规则与示例
抱歉原标题较为模糊,因难以用短句概括该问题。
以下是输入与期望输出的示例:
示例1:剩余值充足场景
| Flow | April 2024 | ------------ | |
|---|---|---|---|
| Incoming | 100 | ||
| Outgoing 1 | 23.2 | ||
| Outgoing 2 | 10 | ||
| Remainder | 66.8 | ||
| ------------ | ---------- | ------------ | |
| Name | Target | Actual | Projected |
| ------------ | ---------- | ------------ | -------------- |
| Sample1 | 100 | 99 | 100 |
| Sample2 | 100 | 110 | 110 |
| Sample3 | 80 | 80 | 80 |
| Sample4 | 10 | 0 | 10 |
| Sample5 | 10 | 0 | 10 |
| Sample6 | 10 | 0 | 10 |
| Sample7 | 100 | 101 | 101 |
| Sample8 | 100 | 92.2 | 100 |
| Sample9 | 62.8 | 63 | 63 |
| Sample10 | 10 | 10 | 10 |
| Sample11 | 10 | 9 | 10 |
| Sample12 | 5 | 5 | 5 |
| Sample13 | Left | 136.12 | 163.12 |
分配规则
将Remainder值填充到Projected列的账户数据中,规则如下:
- 仅当Actual值小于Target值时,补充差值(Target - Actual)至Projected,使其达到Target;若Actual≥Target,Projected直接等于Actual
- 按顺序向下填充,直到Remainder值耗尽
- 最后一个无明确Target值的账户(如示例中的Sample13)接收剩余全部Remainder值
本示例分配明细
Remainder值为66.8,各账户补充的数值如下:
- Sample1: 1
- Sample2: 0
- Sample3: 0
- Sample4: 10
- Sample5: 10
- Sample6: 10
- Sample7: 0
- Sample8: 7.8
- Sample9: 0
- Sample10: 0
- Sample11: 1
- Sample12: 0
- Sample13: 27
- Total: 66.8
示例2:剩余值不足场景
| Flow | April 2024 | ------------ | |
|---|---|---|---|
| Incoming | 100 | ||
| Outgoing 1 | 23.2 | ||
| Outgoing 2 | 75.8 | ||
| Remainder | 1 | ||
| ------------ | ---------- | ------------ | |
| Name | Target | Actual | Projected |
| ------------ | ---------- | ------------ | -------------- |
| Sample1 | 100 | 99 | 100 |
| Sample2 | 100 | 110 | 110 |
| Sample3 | 80 | 80 | 80 |
| Sample4 | 10 | 0 | 0 |
| Sample5 | 10 | 0 | 0 |
| Sample6 | 10 | 0 | 0 |
| Sample7 | 100 | 101 | 101 |
| Sample8 | 100 | 92.2 | 92.2 |
| Sample9 | 62.8 | 63 | 63 |
| Sample10 | 10 | 10 | 10 |
| Sample11 | 10 | 9 | 9 |
| Sample12 | 5 | 5 | 5 |
| Sample13 | Remainder | 136.12 | 136.12 |
注:账户(Sample)的数量可增可减。
内容的提问来源于stack exchange,提问作者Webber
相关产品推荐
相关产品推荐

