- Tham gia
- 21/12/07
- Bài viết
- 1,902
- Được thích
- 5,303
- Nghề nghiệp
- Kinh doanh các mặt hàng văn phòng phẩm
Ngoài các phép toán thông thường như : Cộng "+", trừ "-", nhân "*", chia "/", lũy thừa, mũ "^". Hàm Realvalue còn hỗ trợ thêm các phép toán như giai thừa "P!", Tổ hợp "nCk", Chỉnh hợp "nAk" với :
Giai thừa : P! = P(n) = 1*2*3*…*n
Tổ hợp : nCk = n!/k!*(n-k)!
Chỉnh hợp :nAk = n!/(n-k)!
VD :
[A1] = 1/2+2/3+3/4+4/5+5/6+6/7+7/8+8/9 +p(10) - c(10,3)
[A2] =RealValue(A1) = 3,628,686.17
Giai thừa : P! = P(n) = 1*2*3*…*n
Tổ hợp : nCk = n!/k!*(n-k)!
Chỉnh hợp :nAk = n!/(n-k)!
VD :
[A1] = 1/2+2/3+3/4+4/5+5/6+6/7+7/8+8/9 +p(10) - c(10,3)
[A2] =RealValue(A1) = 3,628,686.17
PHP:
Function RealValue(Str As String) As Double
Dim i As Long, j As Long, n As Long, k As Long
Dim Giaithua As Double, Tohop As Double, Chinhhop As Double
Application.Volatile (False)
With Application.WorksheetFunction
Str = Replace(Str, " ", "")
If Str = "" Then Exit Function
For i = 1 To Len(Str)
Select Case UCase(Mid(Str, i, 1))
Case "P"
j = InStr(i, Str, ")")
Giaithua = .Fact(Mid(Str, i + 2, j - i - 2))
Str = Replace(Str, Mid(Str, i, j - i + 1), Giaithua)
Case "C"
j = InStr(i, Str, ",")
n = Mid(Str, i + 2, j - i - 2)
k = Mid(Str, j + 1, InStr(j, Str, ")") - j - 1)
Tohop = .Combin(n, k)
Str = Replace(Str, Mid(Str, i, InStr(j, Str, ")") - i + 1), Tohop)
Case "A"
j = InStr(i, Str, ",")
n = Mid(Str, i + 2, j - i - 2)
k = Mid(Str, j + 1, InStr(j, Str, ")") - j - 1)
Chinhhop = .Fact(k) * .Combin(n, k)
Str = Replace(Str, Mid(Str, i, InStr(j, Str, ")") - i + 1), Chinhhop)
End Select
Next
End With
RealValue = Evaluate(Str)
End Function