Page 1 of 1

สูตรเฉลี่ยจำนวนออกเป็นรายวัน แล้วรวมจำนวนของแต่ละวันของช่วง

Posted: Mon Oct 01, 2012 4:46 pm
by zxcv
ลองสร้างสูตรแล้ว แต่ไม่ถูกต้อง (Error ตามที่แนบครับ)

Code: Select all

Function TOAMORTIZE(Principal As Double, StartDate As Date, EndDate As Date, FromDate As Date, ToDate As Date) As Double
Dim Accumulated As Double ' from assumptions
Dim TotalDays, CalcDays As Integer
Dim PerDay, PerDaySum, Results As Double
Dim EachDayDate() As Date
Dim EachDayValue() As Double
Dim n, i As Integer
PerDay = 0
PerDaySum = 0
Results = 0
ActiveCell.Value = ""
TotalDays = EndDate - StartDate + 1
ReDim EachDayDate(TotalDays)
ReDim EachDayValue(TotalDays)
CalcDays = ToDate - FromDate + 1
PerDay = Application.Round((Principal / TotalDays), 2)
For n = 0 To (TotalDays - 1)
EachDayDate(n) = StartDate + n
EachDayValue(n) = PerDay
PerDaySum = Application.Round((PerDaySum + PerDay), 2)
Next
If PerDaySum > Principal Then
EachDayValue(TotalDays - 1) = EachDayValue(TotalDays - 1) - Application.Round((PerDaySum - Principal), 2)
Else 'If PerDaySum "<" Principal Then
EachDayValue(TotalDays - 1) = PerDay + Application.Round((((PerDaySum - Principal) - (PerDay * i)) * -1), 2)
End If
For n = 0 To TotalDays - 1
If EachDayDate(n) >= FromDate And EachDayDate(n) <= ToDate Then
TOAMORTIZE = TOAMORTIZE + EachDayValue(n)
End If
Next
Erase EachDayDate        ' Erasing the Array
Erase EachDayValue        ' Erasing the Array
End Function

Re: สูตรเฉลี่ยจำนวนออกเป็นรายวัน แล้วรวมจำนวนของแต่ละวันของช

Posted: Mon Oct 01, 2012 5:01 pm
by snasui
:D แสดงว่าในชีทนั้น มีสูตรที่เกิดการคำนวณวน ลองสังเกตขอบล่างซ้ายของหน้าต่าง Excel จะพบคำว่า Circular: สังเกตดูว่ามีตำแหน่งเซลล์ต่อท้ายข้อความดังกล่าวหรือไม่ หากไม่มีให้หาที่ชีทอื่น ๆ ครับ ควรโพสต์ Code ให้แสดงเป็น Code เพื่อให้ง่ายต่อการอ่าน ดูตัวอย่างที่นี่ครับ viewtopic.php?f=3&t=1187

Re: สูตรเฉลี่ยจำนวนออกเป็นรายวัน แล้วรวมจำนวนของแต่ละวันของช

Posted: Mon Oct 01, 2012 5:10 pm
by zxcv
มีที่ M3 ครับ คือ Cell เดียวกันกับที่วางสูตรเลยครับ

ขอความช่วยเหลือ เพื่อแก้ไข function ด้วยครับ

Re: สูตรเฉลี่ยจำนวนออกเป็นรายวัน แล้วรวมจำนวนของแต่ละวันของช

Posted: Mon Oct 01, 2012 5:24 pm
by snasui
:D ลองแนบตัวอย่างไฟล์มาด้วยจะสะดวกในการช่วยตรวจสอบครับ

Re: สูตรเฉลี่ยจำนวนออกเป็นรายวัน แล้วรวมจำนวนของแต่ละวันของช

Posted: Mon Oct 01, 2012 5:48 pm
by zxcv
แนบมาแล้วครับ
ขอบคุณครับผม

Re: สูตรเฉลี่ยจำนวนออกเป็นรายวัน แล้วรวมจำนวนของแต่ละวันของช

Posted: Mon Oct 01, 2012 8:31 pm
by snasui
:D Mark บรรทัด

Code: Select all

ActiveCell.Value = ""
ให้เป็น Comment ดูครับ

Re: สูตรเฉลี่ยจำนวนออกเป็นรายวัน แล้วรวมจำนวนของแต่ละวันของช

Posted: Tue Oct 02, 2012 8:12 am
by zxcv
ใช้งานได้แล้วครับ
ขอบคุณมากครับ
ที่แท้อยู่ตรงนี้นั่นเองครับ

เดิมผมทำเป็น

Code: Select all

Sub Amortize()
.
.
.
End Sub
พอนำมาทำเป็น function เลยงงเอง