2016-04-29 79 views
-1

的百分比变化的年度销售预期,我想知道是否可以使用Excel的公式来计算的:计算基于销售月和上个月相比

A1是一月份的销售价值。 A2是二月份与一月份相比的销售百分比变化。 (例如:-2%,+ 23.5%) A3是3月份与2月份相比销售额的变化。 A4为4月份,12月份为12月份。

在A13中,我们可以使用excel公式来计算年度预期销售额吗? 我不希望手动键入公式如= A1 + A1 *(1 + A2)+ A1 *(1 + A2)*(1 + A3)...

预先感谢

+0

是否允许使用列B? B2 = A1 * A2。然后B3 = B2 * A3并复制下来。 – dcromley

+0

是的谢谢,但我管理几家商店和几个商店的数据安排在一张桌子。要在每列右侧添加列,然后复制+粘贴也很麻烦。所以我只想知道是否有捷径。 –

+0

“金融”类别中有一些神秘的功能,例如fv,accrint,cumprinc,ispmt等等......但我根本无法触及它们haha –

回答

1

该用户定义函数会做什么你问:

Function suminc(st As Double, rng As Range) As Double 
Application.Volatile 
Dim inc() As Variant 
Dim temp() As Double 
Dim i As Long 


If Not IsNumeric(st) Then 
    suminc = CVErr(xlErrValue) 
    Exit Function 
End If 
inc = rng.Value 
ReDim temp(1 To UBound(inc, 1) + 1) 

temp(1) = st 

For i = 2 To UBound(inc, 1) + 1 
    If IsNumeric(inc(i - 1, 1)) Then 
     temp(i) = temp(i - 1) * (1 + inc(i - 1, 1)) 
    Else 
     suminc = CVErr(xlErrValue) 
     Exit Function 
    End If 
Next i 
suminc = Application.WorksheetFunction.Sum(temp) 
End Function 

把它连接到工作簿中的模块中,工作表的代码或代码的ThisWorkbook。

然后在表,你会这样称呼它:

=suminc(A1,A2:A12) 

首先是起始编号,包含以百分比的形式每月增加的第二范围。

enter image description here

+1

你可以写一个宏,这将做我的洗衣? – findwindow

+0

当您执行temp(1)= st'而不是范围'a1'时,它如何知道使用'a1'的值?因为你表示你正在传球? – findwindow

+1

@findwindow魔法! Range对象是Variant,因此可以制作成适合多种类型。据我了解,如果一个数字没有传递给UDF,它将失败。 –