似乎我从一开始就忽略了一个非常简单的数学公式(理想情况下没有“if's”)。
不是在一个单元格中寻找编程或电子表格解决方案,以多个步骤解决这个问题 - 我可以自己组合所有这些。也许我错了,但似乎我正在将一个非常简单的数学/代数解决方案分解为许多不必要的步骤。
A | B | C | D | E | F |
:- - | :----- | :--- | :--- | :---- | :----------- |
Rank | Col B | Col C | B+C | Formula1 | B+C+Formula2 |
1 | 700 | 20 | 720 | | 849 |
2 | 680 | 1 | 681 | | 810 |
3 | 679 | 1 | 680 | 5 | 809 |
4 | 678 | 5 | 683 | 7 | 807 |
5 | 673 | 7 | 680 | 11 | 797 |
6 | 666 | 11 | 677 | 30 | 783 |
7 | 655 | 30 | 685 | | 761 |
8 | 625 | 5 | 630 | | 706 |
9 | 620 | 1 | 621 | 2 | 697 |
10 | 619 | 2 | 621 | 3 | 695 |
11 | 617 | 3 | 620 | 8 | 691 |
12 | 614 | 8 | 622 | | 685 |
13 | 606 | 1 | 607 | 5 | 670 |
14 | 605 | 5 | 610 | 40 | 668 |
15 | 600 | 40 | 640 | | 658 |
16 | 560 | 1 | 561 | 2 | 579 |
17 | 559 | 2 | 561 | 6 | 577 |
18 | 557 | 6 | 563 | 10 | 573 |
19 | 551 | 10 | 561 | | 561 |
20 | 541 | 1 | 542 | | 542 |
嗨,对于这张桌子,我采取了几个步骤 1)在C栏中,
=SUM($b2,-$b3)
2)在D栏中,
=SUM($b2,$c2)
3)在E栏中,
=IF(SUM($d2,-$d3)<SUM($b2,-$b3),$c3,"")
在此步骤中,我确保所有D列记录(“B + C”)保持至少与下一记录相同的距离,就像它们最初在B列中所做的那样。 < / p>
4)在F栏中,
=SUM($d2,$e2:$e$21)
现在将每个E列数字添加到其上方的所有数字。
答案 0 :(得分:0)
所以我们有
C2 = B2 - B3,
C3 = B3 - B4, .....
D2 = B2 + C2 = 2 * B2 - B3,
D3 = B3 + C3 = 2 * B3 - B4, ....
E2 = if( D2 - D3 < B2 - B3 , C3 , 0 )
E2 = if( (2 * B2 - B3) - (2 * B3 - B4) < (B2 - B3), B3 - B4, 0)
E2 = if( 2 * B2 - B3 - 2 * B3 + B4) < B2 - B3, B3 - B4, 0)
E2 = if( 2 * B2 - 3 * B3 + B4 < B2 - B3, B3 - B4, 0)
E2 = if( B2 - 2 * B3 + B4 < 0 , B3 - B4, 0)
E2 = if( B2 + B4 < 2 * B3, B3 - B4, 0)
E2 = if( (B2 + B4)/2 < B3, B3 - B4, 0)
因此E2基本上是看B3是否大于B2 + B4的平均值。
我无法轻易简化F列公式。它可以用SUMIF编写,但你可能需要一个额外的列,其中包含2 * B3 - B2 - B4。
这似乎有点不寻常,因为更常见的是累积金额而不是底部的累积金额。