Giúp tìm hàm nội suy phù hợp :D (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hoangcuong29_10

Thành viên mới
Tham gia
21/11/13
Bài viết
2
Được thích
0
Em hiện đang làm 1 bài tập có sử dụng đến hàm nội suy, đã tham khảo qua các phương pháp nội suy của các a trên diễn đàn sử dụng rất tốt nhưng trong trường hợp trong bảng có xuất hiện số âm thì không đưa được ra kết quả chính xác.+-+-+-++-+-+-++-+-+-+...Hic...không biết có anh (chị) nào có thể giải đáp giúp e vấn đề này được không ạ...E xin cảm ơn :D
 
Lần chỉnh sửa cuối:

thử với hàm tự tạo này xem thế nào !:
Mã:
Public Function Noi_suy(gt1, gt2, rng As Range, Optional chk As Boolean = False)
' cdbl(gt1) la gia tri tim kiem theo hang, cdbl(gt2) la gia tri tim kiem theo cot
Dim i As Long, j As Long, m As Long, n As Long, Arr
Dim arr11 As Double, arr21 As Double, arr12 As Double, arr22 As Double, b1 As Double, b2 As Double
' mang gom m hang va n cot
Arr = rng.Value
m = UBound(Arr, 1)
n = UBound(Arr, 2)
If Not chk Then
    If gt1 > Arr(m, 1) Or gt2 > Arr(1, n) Or gt1 < Arr(2, 1) Or gt2 < Arr(1, 2) Then Noi_suy = "": Exit Function
End If
    For i = 1 To m
        If Arr(i, 1) > CDbl(gt1) Or i = m Then
            Exit For
        End If
    Next
    For j = 1 To n
        If Arr(1, j) > CDbl(gt2) Or j = n Then
            Exit For
        End If
    Next
' noi suy giArr tri
    arr11 = Arr(i - 1, j - 1): arr21 = Arr(i - 1, j): arr12 = Arr(i, j - 1): arr22 = Arr(i, j)
    b1 = arr11 + (CDbl(gt2) - Arr(1, j - 1)) * (arr21 - arr11) / (Arr(1, j) - Arr(1, j - 1))
    b2 = arr12 + (CDbl(gt2) - Arr(1, j - 1)) * (arr22 - arr12) / (Arr(1, j) - Arr(1, j - 1))
    Noi_suy = b1 + (CDbl(gt1) - Arr(i - 1, 1)) * (b2 - b1) / (Arr(i, 1) - Arr(i - 1, 1))
End Function

ví dụ nội suy :
tại ô bất kỳ trong file đính kèm của bạn ( sau khi copy code trên vào 1 module bất kỳ ): nhập công thức sau :
PHP:
=Noi_suy(L17,N15,$D$15:$I$19)
giá trị = -0.00363
 
Web KT

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

Back
Top Bottom