giúp em làm cái bảng tra 2 chiều với (1 người xem)

  • Thread starter Thread starter n2kgt
  • Ngày gửi Ngày gửi
Liên hệ QC

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

n2kgt

Thành viên mới
Tham gia
13/10/10
Bài viết
6
Được thích
0
mình là dân amateur về VBA vừa nhập môn có 1 bài tập này mong các bạn giúp đỡ:
-Nội dung:
, Xây dựng hàm mới trong excel
, Thông số đầu vào của hàm:
* Bảng cần tra là 1 vùng dữ liệu liên tục có số hàng và số cột không hạn chế
* Giá trị cần tra theo cột(bất kỳ)
* Giá trị cần tra theo hàng bất kỳ
, Thông báo lỗi cho người dùng khi gặp lỗi
-Yêu cầu:
, Sử dụng nguyên tắc nội suy tuyến tính khi tra bảng
, Giá trị trong bảng chỉ bao gồm chữ số
, Cột đầu và dòng đầu là giá trị cơ sở để tra bảng


Ai có thể gợi ý cách làm cho mình được không?,vì thực sự mình không biết bắt đầu từ đâu cả
Thanks!
 
Lần chỉnh sửa cuối:
Mình không rành rẽ lắm về nội suy, nhưng mạnh bạo góp với bạn vài í sau:

Hình như bảng tra đó cần có đủ tiêu đề hàng & tiêu đề cột; Nếu như bạn nói là chưa có thì ta thêm vô. (Cho nó trực quan í mà)

(*) Bạn fải chọn lựa 1 chương trình (hàm) nội suy 2 chiều (có nhiều trên diễn đàn), thảo luận thêm trên diễn đàn để chọn ra hàm mỹ mãn nhất đối với bạn;

(*) Mình hay ai khác sẽ giúp bạn tổng quát hóa hơn trong việc tra bảng này.

Mong góp cho bạn chút le lói nào đó!
 
Upvote 0
có ai đó giúp mình với ???
 
Lần chỉnh sửa cuối:
Upvote 0
mình là dân amateur về VBA vừa nhập môn có 1 bài tập này mong các bạn giúp đỡ:
-Nội dung:
+, Xây dựng hàm mới trong excel
+, Thông số đầu vào của hàm:
* Bảng cần tra là 1 vùng dữ liệu liên tục có số hàng và số cột không hạn chế
* Giá trị cần tra theo cột(bất kỳ)
* Giá trị cần tra theo hàng bất kỳ
+, Thông báo lỗi cho người dùng khi gặp lỗi
-Yêu cầu:
+, Sử dụng nguyên tắc nội suy tuyến tính khi tra bảng
+, Giá trị trong bảng chỉ bao gồm chữ số
+, Cột đầu và dòng đầu là giá trị cơ sở để tra bảng


Ai có thể gợi ý cách làm cho mình được không?,vì thực sự mình không biết bắt đầu từ đâu cả
Thanks!
-Các bác đó nói đúng đó.Bạn phải nói cụ thể bài của bạn như thế nào (đưa file lên là cách nhanh nhất)
-Ngày trước hổi mới đầu mình cũng đã hỏi bác ChanhTQ@ rất nhiều và rồi cũng lập được các hàm nội suy 2 chiều với nhiều dạng khác nhau,2 yếu tố,3 yếu tố,số hàng hoặc số cột trong 1 vùng biến thiên,vùng 1 có 5 hàng,vùng 2 lại có 7 hàng ....
-Cái này nhiều vấn đề lắm tùy bài toán cụ thể mà thôi.
 
Upvote 0
có nhu cầu giống bạn này.Mình có bản số liệu.
Yêu cầu là mình nhập các cặp giá trị m,n thì sẽ nội suy ra giá trị trong bảng tra.
Ai làm giúp với.
 

File đính kèm

Upvote 0
có nhu cầu giống bạn này.Mình có bản số liệu.
Yêu cầu là mình nhập các cặp giá trị m,n thì sẽ nội suy ra giá trị trong bảng tra.
Ai làm giúp với.
-Đề nghị như sau:
1.Trước khi hỏi hãy dùng chức năng Tìm kiếm,với file của bạn thì trên diễn đàn không thiếu
2.Up ngay file lên,để mội người trả lời 1 cách chính xác nhất
-Mình cứ tưởng ghê gớm lắm.Ai dè ....xem file đính kèm
PHP:
Function NoiSuy2_CT(vungtra As Range, hangcantra As Double, _
                    cotcantra As Double) As Double
 'Ham Noi Suy 2 Chieu cai tien (kiennguyen)'
Dim x1 As Double, x2 As Double, y1 As Double, y2 As Double
 'x1,x2 ung voi cot : y1,y2 ung voi hang'
Dim a11 As Double, a12 As Double, a21 As Double, a22 As Double
Dim t1 As Double, t2 As Double
Dim i As Integer, j As Integer
Dim hangthu1 As Range, cotthu1 As Range
Set hangthu1 = vungtra.Cells(1, 2).Resize(1, vungtra.Columns.Count - 1)
Set cotthu1 = vungtra.Cells(2, 1).Resize(vungtra.Rows.Count - 1, 1)
For i = 1 To hangthu1.Cells.Count
  If hangthu1.Cells(1, i) <= cotcantra And hangthu1.Cells(1, i + 1) >= cotcantra Then
        y1 = hangthu1.Cells(1, i): y2 = hangthu1.Cells(1, i + 1)
    For j = 1 To cotthu1.Cells.Count
      If cotthu1.Cells(j, 1) <= hangcantra And cotthu1.Cells(j + 1, 1) >= hangcantra Then
           x1 = cotthu1.Cells(j, 1): x2 = cotthu1.Cells(j + 1, 1)
           a11 = vungtra.Cells(j + 1, i + 1)
           a12 = vungtra.Cells(j + 1, i + 2)
           a21 = vungtra.Cells(j + 1 + 1, i + 1)
           a22 = vungtra.Cells(j + 1 + 1, i + 1 + 1)
           t1 = a11 + (a12 - a11) * (cotcantra - y1) / (y2 - y1)
           t2 = a21 + (a22 - a21) * (cotcantra - y1) / (y2 - y1)
           NoiSuy2_CT = t1 + (t2 - t1) * (hangcantra - x1) / (x2 - x1)
       End If
    Next j
   End If
Next i
End Function
 

File đính kèm

Upvote 0

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

Back
Top Bottom