Excel:包含数组公式

时间:2017-07-13 23:21:05

标签: excel excel-formula

我们在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)}来计算所欠的金额。

但是,后续专栏只需要支付当前应付款项与之前支付款项之间的差额。

使事情进一步复杂化:

  • 如果没有变化,数据将为空白。例如,如果在第一次检查时完成了25%的事情,并且在第二次检查时仍然完成了25%,则第二次检查栏中的相应单元格将为空白。
  • 百分比可能下降,导致支付的负数。例如,如果在第一次检查时有50%的事情已完成,但进度却倒退,那么第二次检查可能会达到25%,这意味着资金将返还给我们。

所以"%完成"在第一个之后的列中,我需要在"%完成"中的同一行中的最后一个非空白单元格。当前列之前的列。使用this explanation,我能够创建一个执行此操作的公式:

=$A2*(C2-LOOKUP(2,1/($B2:B2<>""),$B2:B2))

这将计算特定单元格的应付金额,因此在上面的示例中,它将产生250美元:1,000美元*(50% - 25%)。它会继续工作,并将处理找到最后一个非空白列。

我想在数组公式中使用上述公式,但无法弄清楚如何操作。

这样我们就会得到一个问题:当一个公式已经有一个范围(即上面公式中的$B2:B2)时,是否可以在数组公式中使用它,如果是,怎么样?在正常公式中,您可以将单元格引用(例如,A1)转换为范围(例如,A:A),但是是否存在某种语法来使用范围内的范围?

也很高兴考虑完全不同的方法来解决这个问题,但由于使用了这个电子表格,我们很遗憾无法使用VBA。

1 个答案:

答案 0 :(得分:1)

要回答帖子的最后部分,我假设您将按时更新并计算进度和付款。在这种情况下,您需要做的就是将当前时段与之前的时段进行比较。如果是这种情况,那么在这样的形式中使用IF()函数应该可以达到目的。

=IF(Compl2>Compl1,Compl2*Rate,(Compl2*Rate-Compl1*Rate))