Xây dựng một hàm mới trong Excel

Liên hệ QC

huu.tunnel

Thành viên mới
Tham gia
28/9/10
Bài viết
4
Được thích
0
Xin chào mọi người. Làm ơn làm giúp tôi bài tập này với.
Nội dung: Xây dựng một hàm mới trong Excel.
Với n cho trước,tính ln(1)+ln(2)+...+ln(n)
Mail của tôi: duongham.gtvt@gmail.com
Cám ơn mọi người nhiều.
 
Xin chào mọi người. Làm ơn làm giúp tôi bài tập này với.
Nội dung: Xây dựng một hàm mới trong Excel.
Với n cho trước,tính ln(1)+ln(2)+...+ln(n)
Mail của tôi: duongham.gtvt@gmail.com
Cám ơn mọi người nhiều.
Đây là một tham khảo cho bạn:
PHP:
Function SumLn(n As Long) As Double
    Dim i As Long
    If n < 1 Then
        SumLn = Null: Exit Function
    End If
    For i = 1 To n
        SumLn = SumLn + WorksheetFunction.Ln(i)
    Next i
End Function
Không biết có cách nào cải thiện tốc độ tính toán hay không. Hàm này sử dụng vòng lặp For để tính nên nếu nhập n lớn thì tốc độ sẽ rất chậm.
 
Upvote 0
C1: Dựa vô WorkSheetFunction

PHP:
Option Explicit

Function Ln_GPE(Num As Integer) As Double
 Dim WF As Object, jJ As Integer
 
 Set WF = Application.WorksheetFunction
 For jJ = 2 To Num
   Ln_GPE = Ln_GPE + WF.Ln(jJ)
 Next jJ
End Function

Cách 2: Dựa vô hàm EXP() trong VBA:= "Bạn suy nghĩ tiếp nha"
 
Upvote 0
Đây là một tham khảo cho bạn:
PHP:
Function SumLn(n As Long) As Double
    Dim i As Long
    If n < 1 Then
        SumLn = Null: Exit Function
    End If
    For i = 1 To n
        SumLn = SumLn + WorksheetFunction.Ln(i)
    Next i
End Function
Không biết có cách nào cải thiện tốc độ tính toán hay không. Hàm này sử dụng vòng lặp For để tính nên nếu nhập n lớn thì tốc độ sẽ rất chậm.
Ln(1) luôn luôn = 0 rồi nên chỉ cần tính từ 2 trở đi là được rồi
Ngoài ra
Ln(x) = Log(x) / Log(Exp(1)) (khỏi dùng WorksheetFunction ---> Phù hợp với những ai dùng hàm áp dụng với các ứng dụng không phải Excel)
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom