1년 동안의 성장 이월을 계산하는 UDF가 있습니다. 예를 들어, 2분기에는 3분기와 4분기의 성장이 0인 경우 연간 성장률이 됩니다. 이 경우 전년도의 4분기와 올해 1분기의 2분기가 필요합니다.
이것은 계산하거나 프로그래밍하는 것이 그리 어렵지 않습니다. 쉽게 접근할 수 있도록 이 기능을 사용하는 사람들은 마지막으로 관찰된 지점만 기능의 입력이 되어야 한다는 점을 대체로 선호했습니다. 다른 입력은 내가 가지고 있는 관찰 데이터의 분기 수입니다. 이 경우에는CarryOver(C16,2)
이렇게 하면 다른 과거 값이 변경되어도 내 UDF가 업데이트되지 않습니다. 을 사용하여 강제로 적용할 수 있지만 Application.Volatile
먼저 사용된 값이 다른 시트를 참조하는 수식을 기반으로 하는 경우 작동하지 않는 것 같습니다. 그리고 더 근본적으로 두 입력(마지막 데이터의 셀, 내가 가지고 있는 분기 수 등 C11:C16
)과 함께 어떤 셀이 사용될지 미리 계산할 수 있으므로 Excel에서 이 UDF를 계산하도록 지시하는 방법이 있을 수 있습니다. 암시된 셀의 값 중 하나가 변경될 때마다 옵션보다 더 좋습니다 volatile
. 그게 가능합니까?
편집: 내 UDF의 핵심은 다음과 같습니다.
Public Function CarryOver(DerniereDonneeDure As Range, AcquisAuMoment_T_plus_X As Integer)
Dim Trim As Double
Trim = 100
Ligne = DerniereDonneeDure.Row - AcquisAuMoment_T_plus_X + 1
Colonne = DerniereDonneeDure.Column
For i = -4 To -1
Trim = Trim * (1 + Cells(Ligne + i, Colonne).Value)
Ecoule = Ecoule + Trim
Next
For j = 0 To AcquisAuMoment_T_plus_X - 1
Trim = Trim * (1 + Cells(Ligne + j, Colonne).Value)
Encours = Encours + Trim
Next
For j = AcquisAuMoment_T_plus_X To 3
Encours = Encours + Trim
Next
Acquis = Encours / Ecoule - 1
End Function