giúp em hàm VLOOKUP

Liên hệ QC

hhb204

Thành viên mới
Tham gia
14/6/10
Bài viết
2
Được thích
0
Em có 1 ví dụ như sau:
h(m)= 5 có hệ số: 1.45
h(m)= 10 có hệ số: 1.50
h(m)= 25 có hệ số: 2.0
...................................
em muốn dùng hàm VLOOKUP để tìm kiếm
Tuy nhiên nếu h(m)= 7 có hệ số: ???+-+-+-+, em muốn dùng nội suy để tìm ra kết quả.
mong anh chị giúp em.kết hợp nội suy trong hàm vlookup hoặc Hlookup.
Em cảm ơn ạ!

bạn nên đưa file cụ thể nhé
Dạ đây là file cụ thể.
 

File đính kèm

  • BT.xls
    51 KB · Đọc: 91
Chỉnh sửa lần cuối bởi điều hành viên:
Em có 1 ví dụ như sau:
h(m)= 5 có hệ số: 1.45
h(m)= 10 có hệ số: 1.50
h(m)= 25 có hệ số: 2.0
...................................
em muốn dùng hàm VLOOKUP để tìm kiếm
Tuy nhiên nếu h(m)= 7 có hệ số: ???+-+-+-+, em muốn dùng nội suy để tìm ra kết quả.
mong anh chị giúp em.kết hợp nội suy trong hàm vlookup hoặc Hlookup.
Em cảm ơn ạ!


Dạ đây là file cụ thể.

Không hiểu cách nội suy ra kêt quả của bạn thực tế là làm như thế nào, tôi hiểu nôm na là bạn muốn lấy kết quả trung bình tương ứng của h1, h2 (h1<h<h2).
Thuật toán như sau:
1. Nếu h>=400, lấy giá trị k của h=400. Còn không thì:
2. Nếu h nằm trong giá trị tiêu chuẩn của nó ở $C$8:$C$24 thì dùng vlookup lấy chính xác giá trị tương ứng như bạn đã làm. Còn không:
PHP:
VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),0)
3. Còn h khác dãy tiêu chuẩn thì lấy trung bình cộng của 2 giá trị k1,k2 là (k1: dùng dò tìm tương đối lấy giá trị trước tương ứng gần nhất nhỏ hơn) và k2 lớn hơn kế nó (k1, k2 tương ứng với h1, h2 với h1<h<h2 và k1<k<k2)

PHP:
k1=VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),1)
PHP:
k2=OFFSET(D$7,MATCH(VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),1),D$8:D$24)+1,,)

Code cuối cùng dài ngoằng... //**/ tại G9
PHP:
G9=IF($C$3>=400, $D24, IF(COUNTIF($C$8:$C$24,$C$3),VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),0),AVERAGE(VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),1),OFFSET(D$7,MATCH(VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),1),D$8:D$24)+1,,))))

Copy công thức sang các ô H9, I9. Nếu bạn muốn "nội suy" giá trị h theo tuyến tính chính xác hơn thì bạn chỉnh lại công thức average sang lấy theo tỉ lệ như: (h-h1)/(h2-h1)=(k-k1)/k2-k1). Suy ra k=?

Có thể đặt các name cho công thức ngắn gọn và dễ hiểu hơn. Mình cũng không rành lắm. Nghĩ mãi mới ra được cách này thôi. Chắc chắn các Anh Chị khác sẽ có thêm cách tối ưu hơn cho bạn. Thân
 

File đính kèm

  • BT.xls
    38.5 KB · Đọc: 46
Không hiểu cách nội suy ra kêt quả của bạn thực tế là làm như thế nào, tôi hiểu nôm na là bạn muốn lấy kết quả trung bình tương ứng của h1, h2 (h1<h<h2).
Thuật toán như sau:
1. Nếu h>=400, lấy giá trị k của h=400. Còn không thì:
2. Nếu h nằm trong giá trị tiêu chuẩn của nó ở $C$8:$C$24 thì dùng vlookup lấy chính xác giá trị tương ứng như bạn đã làm. Còn không:
PHP:
VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),0)
3. Còn h khác dãy tiêu chuẩn thì lấy trung bình cộng của 2 giá trị k1,k2 là (k1: dùng dò tìm tương đối lấy giá trị trước tương ứng gần nhất nhỏ hơn) và k2 lớn hơn kế nó (k1, k2 tương ứng với h1, h2 với h1<h<h2 và k1<k<k2)

PHP:
k1=VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),1)
PHP:
k2=OFFSET(D$7,MATCH(VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),1),D$8:D$24)+1,,)

Code cuối cùng dài ngoằng... //**/ tại G9
PHP:
G9=IF($C$3>=400, $D24, IF(COUNTIF($C$8:$C$24,$C$3),VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),0),AVERAGE(VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),1),OFFSET(D$7,MATCH(VLOOKUP($C$3,$C$8:$F$24,COLUMNS($C:D),1),D$8:D$24)+1,,))))

Copy công thức sang các ô H9, I9. Nếu bạn muốn "nội suy" giá trị h theo tuyến tính chính xác hơn thì bạn chỉnh lại công thức average sang lấy theo tỉ lệ như: (h-h1)/(h2-h1)=(k-k1)/k2-k1). Suy ra k=?

Có thể đặt các name cho công thức ngắn gọn và dễ hiểu hơn. Mình cũng không rành lắm. Nghĩ mãi mới ra được cách này thôi. Chắc chắn các Anh Chị khác sẽ có thêm cách tối ưu hơn cho bạn. Thân
ohhhh..được rồi.Thật sự mình cảm ơn rất nhiều.
cảm ơn bạn.!
 
Web KT
Back
Top Bottom