Công thức tính hệ số nội suy ?

Thảo luận trong 'Hàm và công thức Excel' bắt đầu bởi TrungChinhs, 7 Tháng bảy 2011.

  1. TrungChinhs

    TrungChinhs New Member

    Tôi có file tính hệ số nội suy, công thức trong kết quả đã được lập theo đúng công thức tổng quát và đã cho kết quả đúng nhưng tôi thấy nó dài quá. Nhờ các Bạn viết giúp công thức cho gọn hơn. Thanks !
     

    Các file đính kèm:

  2. ptm0412

    ptm0412 Excel Ordinary Member

    =HLOOKUP($C8;$C$4:$H$5;2;1)-(HLOOKUP($C8;$C$4:$H$5;2;1)-OFFSET($C$5;0;MATCH($C8;$C$4:$H$4;1)))*(C8-H8)/(OFFSET($C$4;0;MATCH($C8;$C$4:$H$4;1))-HLOOKUP($C8;$C$4:$H$5;1;1))

    Còn khoảng 1/2 chiều dài.

    Có lẽ vẫn còn có thể rút gọn hơn. Anh xem file. Sử dụng thêm 1 giá trị 0
    Các cột phụ là nháp để anh xem cho dễ (xem xong xoá), cột cuối là công thức chính.
     

    Các file đính kèm:

    Last edited: 7 Tháng bảy 2011
  3. ChanhTQ@

    ChanhTQ@ Thành viên già cỗi.

    Bạn thử xài công thức này

    =IF($J4<=NTi,0.64,IF($J4<=ChT,0.64-((0.64-0.43)*($J4-NTi))/NTi,IF($J4<=N0Ti,0.43-((0.43-0.3)*($J4-ChT))/B0T,IF($J4<=TrTi,0.3-((0.3-0.23)*($J4-N0Ti))/N0Ti,IF($J4<=N00Ti,0.23-((0.23-0.13)*($J4-TrTi))/B0T*10,0)))))
     
  4. thanhlanh

    thanhlanh New Member

    Mình làm hàm tự tạo để tính:
     

    Các file đính kèm:

    Last edited: 8 Tháng bảy 2011
  5. HYen17

    HYen17 Thành viên cằn cỗi.

    Cũng có thể như vầy, gọn xíu í mà! :
    PHP:
    Option Explicit
    Function NoiSuy(As Currency)
     
    Dim J As Integer
     
    For 2 To 6
        With Cells
    (4J)
            If .
    Value <= And .Offset(, 1).Value >= N Then
                NoiSuy 
    = .Offset(1) + ((- .Value) * (.Offset(11) - .Offset(1))) / (.Offset(, 1) - .Value)
                Exit Function
            
    End If
        
    End With
     Next
    End 
    Function
     
  6. ptm0412

    ptm0412 Excel Ordinary Member

    Nếu dùng hàm tự tạo, tôi sẽ viết hàm với 3 tham số:

    Function Noisuy(XNum As Double, XRng As Range, YRng As Range) As Double

    Như vậy, có thể dùng hàm với 2 dãy số tại bất kỳ vị trí nào và kích thước bao nhiêu.
     
  7. ptm0412

    ptm0412 Excel Ordinary Member

    PHP:
    Function Noisuy(XNum As DoubleXRng As RangeYRng As Range) As Double
    If XNum 0 Then Noisuy 0: Exit Function
    Dim KnownXKnownYik
    1
    ReDim KnownX
    (1 To XRng.Count)
    ReDim KnownY(1 To XRng.Count)
    For 
    Each Cll In XRng
        KnownX
    (k) = Cll.Value
        k 
    1
    Next
    1
    For Each Cll In YRng
        KnownY
    (k) = Cll.Value
        k 
    1
    Next
            
    For 1 To XRng.Count
                
    If KnownX(i) <= XNum And KnownX(1) >= XNum Then
                    Noisuy 
    KnownY(i) + ((XNum KnownX(i)) * _
                    
    (KnownY(1) - KnownY(i))) / (KnownX(1) - KnownX(i))
                    Exit Function
                
    End If
            
    Next
    End 
    Function
     

    Các file đính kèm:

  8. TrungChinhs

    TrungChinhs New Member

    Thầy ơi chữ màu đỏ có phải là Name không ạ ?

    Cảm ơn các bạn ! các phương án các bạn đưa ra đều cho kết quả đúng nhưng tôi chưa kịp hiểu, tôi sẽ nghiên cứu từng PA nếu có gì chưa hiểu sẽ nhờ các bạn chỉ giáo tiếp.
     
    Last edited: 8 Tháng bảy 2011

Chia sẻ trang này