我们在Excel中获得的数据如下所示:
| A | B | C |
—————————————————————————————————————————
1 | Amount | % Complete 1 | % Complete 2 |
2 | $ 1,000 | 25% | 50% |
3 | $ 600 | 50% | 100% |
4 | $ 2,500 | 75% | 100% |
每个订单项都是我们同意支付的任务的成本,并且每个订单项都是“完成”#34;列是特定日期的完成百分比。我们总结了截至该日期所欠的金额,根据百分比支付给他们,这意味着第一个"%完成"我们可以使用数组公式{=SUM(A2:A4*B2:B4)}
来计算所欠的金额。
但是,后续专栏只需要支付当前应付款项与之前支付款项之间的差额。
使事情进一步复杂化:
所以"%完成"在第一个之后的列中,我需要在"%完成"中的同一行中的最后一个非空白单元格。当前列之前的列。使用this explanation,我能够创建一个执行此操作的公式:
=$A2*(C2-LOOKUP(2,1/($B2:B2<>""),$B2:B2))
这将计算特定单元格的应付金额,因此在上面的示例中,它将产生250美元:1,000美元*(50% - 25%)。它会继续工作,并将处理找到最后一个非空白列。
我想在数组公式中使用上述公式,但无法弄清楚如何操作。
这样我们就会得到一个问题:当一个公式已经有一个范围(即上面公式中的$B2:B2
)时,是否可以在数组公式中使用它,如果是,怎么样?在正常公式中,您可以将单元格引用(例如,A1
)转换为范围(例如,A:A
),但是是否存在某种语法来使用范围内的范围?
也很高兴考虑完全不同的方法来解决这个问题,但由于使用了这个电子表格,我们很遗憾无法使用VBA。
答案 0 :(得分:1)
要回答帖子的最后部分,我假设您将按时更新并计算进度和付款。在这种情况下,您需要做的就是将当前时段与之前的时段进行比较。如果是这种情况,那么在这样的形式中使用IF()函数应该可以达到目的。
=IF(Compl2>Compl1,Compl2*Rate,(Compl2*Rate-Compl1*Rate))