Nhờ giúp đỡ về Hàm VLOOKUP! (1 người xem)

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

Lasderybi

Thành viên hoạt động
Tham gia
9/12/11
Bài viết
191
Được thích
20
Chào các bạn!
Mình tham gia GPE đã lâu và cũng đã học hỏi được rất rất nhiều điều từ đây, mình thật sự cảm kích trước sự nhiệt tình của các bạn.
Hôm nay mình có chút thắc mắc nhỏ mong các bạn giải đáp giùm!
Mình có 1 file Excell có 2 Sheet là Du lieu và Ket qua
Ở Sheet Du lieu gồm có các cột mã số, tên và số tiền, Sheet Ket qua gồm các cột Mã sô, tên và Số tiền ( Cột Số tiền mình dùng Hàm VLOOKUP để kéo từ sheet Du lieu sang)
Vấn đề là:
Có 1 Mã số ở Sheet Ket qua có 5 dòng (bên Sheet Du lieu cũng 5 dòng nhưng 5 dòng là 5 số tiền khác nhau). Nhưng khi mình đặt Hàm và kéo sang thì 5 dòng ở Sheet Ket qua chỉ nhận được 1 số tiền trong Sheet Du lieu, nghĩa là 5 số tiền giống nhau.
Vậy mình muốn 5 dòng bên Sheet Ket qua phải là 5 số tiền bên Sheet Du lieu thì phải làm sao???
 

File đính kèm

Các bạn tải về rùi nghiên cứu giúp mình với nhé! Mình cần lắm.
 
Các bạn tải về rùi nghiên cứu giúp mình với nhé! Mình cần lắm.

D5=INDEX('DU LIEU'!$D$2:$D$543,SMALL(IF('DU LIEU'!$A$2:$A$543=C5,ROW('DU LIEU'!$F$2:$F$543)-1,""),COUNTIF($C$5:C5,C5)))
kết thúc bằng Ctrl Shift enter (cthức mảng)

nếu nặng quá chạy không nổi thì tìm cách khác
 
Hàm tự tạo với sự bổ trợ của =COUNTIF()

\\\\\\\\\\\\\\\\\////////////,,,,,,,,,,,,,,,,,\\\\\\\\\\\\////////////\\///////
 
Lần chỉnh sửa cuối:
D5=INDEX('DU LIEU'!$D$2:$D$543,SMALL(IF('DU LIEU'!$A$2:$A$543=C5,ROW('DU LIEU'!$F$2:$F$543)-1,""),COUNTIF($C$5:C5,C5)))
kết thúc bằng Ctrl Shift enter (cthức mảng)

nếu nặng quá chạy không nổi thì tìm cách khác
Cách của bạn sao mình làm hok dược nhỉ? Bạn giải thích CThức hộ mình với!
 
Lần chỉnh sửa cuối:
Cách của bạn có vẻ khả quan nhưng mình cũng chưa hiểu lắm, chi tiết hơn chút bạn ơi!
Cái cột =COUNTIF() để làm gì? Có liên quan hok sao mình xóa thử nó chẳng sao?

Cột countif() chắng có liên quan gì cả. Bạn có thể xóa.
Đây là hàm tự tạo làm bằng VBA của bác SADQ viết. Nếu muốn xem code nhấn Alt + F11 đê xem.
Cú pháp của hàm: vlookup_(Dữ liệu cần dò, Bảng dò, Cột cần trả vê, Thứ tự trong cột trả về tính từ trên xuống).
Vậy chắc bạn áp dụng được rồi nhỉ.
 
[ThongBao]Cách của bạn có vẻ khả quan nhưng mình cũng chưa hiểu lắm, chi tiết hơn chút bạn ơi!
Cái cột =COUNTIF() để làm gì? Có liên quan hok sao mình xóa thử nó chẳng sao?[/ThongBao]

Đó là hàm đựợc tạo ra do người viết; Nội dung nó đây:

PHP:
Option Explicit
Function VLOOKUP_(LValue, Rng As Range, Col As Byte, Optional Num As Byte = 1)
 Dim Sh As Worksheet, sRng As Range, Cls As Range
 Dim J As Byte, Rw As Long
 
3 Set sRng = Rng.Find(LValue, , xlFormulas, xlWhole)
 If Not sRng Is Nothing Then
5    If Num = 1 Then
        VLOOKUP_ = sRng.Offset(, Col).Value
7    Else
        Rw = Rng.Rows.Count
9        Set Rng = sRng(1).Resize(Rw - sRng.Row)
        For Each Cls In Rng
11            If Cls.Value = LValue Then J = J + 1
            If J = Num Then
13               VLOOKUP_ = Cls.Offset(, Col).Value
                Exit Function
15            End If
        Next Cls
17    End If
 Else
19    VLOOKUP_ = "Nothing"
 End If
End Function


Các dòng lệnh quan trọng:

D3: Tìm ô đầu tiên chứa trị cần tìm
D6: Nếu ta đưa vô hàm tham trị = 1 thì hàm sẽ trả về trị cách 3 ô về fía fải kể từ ô tìm thấy
Nếu Tham trị đưa vô là >1 thì :
D9: Xác định lại vùng cần tìm; Vùng đó có ô đầu tiên là ô vừa tìm được & ô cuối của vùng ta đưa vô làm vùng cuối của vùng mới này.
D10: Tạo vòng lặp duyệt lần lượt các ô
(Vòng lặp kết thúc tại D16)
Trong khi duyệt, nếu:
Trong khi duyệt trị trong ô bằng với tham biến ta cung cấp thì tăng biến đếm J thêm 1 (đơn vị) (D11)
D13: Kiểm tra, nếu biến đếm bằng với tham biến thứ tự ta cần thì lấy trị cách ô đang duyệt về fía fải 3 ô làm trị của hàm
D14: Thoát ngay giữa chừng
,,,,,,,,,,,,,,,,,,,,,,,,,
Tham biến thứ tự được cung cấp bỡi hàm COUNTIF()

Chúc vui!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Rất cảm ơn các bạn đã nhiệt tình giúp đỡ đúng như mong đợi của mình, mình đã giải quyết được vấn đề của và...các bạn không biết đâu, các bạn đã giúp mình được việc rất lớn đấy!!!
Một lần nữa cám ơn các bạn, cám ơn GPE!
 
Help me!

Mình cũng đang gặp vấn đề này sư huynh nào chỉ giáo với. Trong đó mình muốn cắt hàng Ngày tháng sang cột khác, Thời gian nghĩ là quãng dãn thời gian giữa hai chuyến của xe bất kỳ. và mình muốn loại bỏ một số xe thực tế không còn hoạt đọng nữa, chỉ giữ lại một số nhất định.
 

File đính kèm

Mình cũng đang gặp vấn đề này sư huynh nào chỉ giáo với. Trong đó mình muốn cắt hàng Ngày tháng sang cột khác, Thời gian nghĩ là quãng dãn thời gian giữa hai chuyến của xe bất kỳ. và mình muốn loại bỏ một số xe thực tế không còn hoạt đọng nữa, chỉ giữ lại một số nhất định.

Bạn xem file đính kèm nhé.
 

File đính kèm

Cảm ơn bạn. Nhưng mình muốn loại bỏ bớt một số xe không hoạt động nữa và tính quảng thời gian công trình không làm viêc lâu nhất.( thời gian nghĩ = khoảng cách lâu nhất giữa các chuyến xe). bạn giúp mình với!
 
Nếu được bạn giúp mình viết đoan VBA nhé vì mình phải xử lý khá nhiều file như vậy!
 
Cảm ơn bạn. Nhưng mình muốn loại bỏ bớt một số xe không hoạt động nữa và tính quảng thời gian công trình không làm viêc lâu nhất.( thời gian nghĩ = khoảng cách lâu nhất giữa các chuyến xe). bạn giúp mình với!

Mình chưa hiểu ý bạn lắm. Tốt nhất là bạn nên đưa file có đầy đủ dữ liệu đang có và điền kết quả mong muốn (làm bằng tay) và giải thích kết quả đó lấy từ đâu, dựa vào đâu để lấy.

Chúc bạn thành công.
 
chào các anh chị có thể viết vba rút gọn cho công thức tìm klếm theo hai điều kiện và lấy giá trị tiếp theo như vấn đề trong topic này.
mình tham khảo công thức mảng ở link này nhưng thấy dài quá, và load công thức rất lâu.
cám ơn các anh chị
 
Cảm ơn, vì nhờ bạn mà fát hiện ra 2 thiếu sót trong hàm tự tạo fía trên!

[Thongbao]Chào các anh chị có thể viết vba rút gọn cho công thức tìm klếm theo hai điều kiện và lấy giá trị tiếp theo như vấn đề trong topic này.
mình tham khảo công thức mảng ở link này nhưng thấy dài quá, và load công thức rất lâu.
cám ơn các anh chị[/Thongbao]
 

File đính kèm

[Thongbao]Chào các anh chị có thể viết vba rút gọn cho công thức tìm klếm theo hai điều kiện và lấy giá trị tiếp theo như vấn đề trong topic này.
mình tham khảo công thức mảng ở link này nhưng thấy dài quá, và load công thức rất lâu.
cám ơn các anh chị[/Thongbao]

bạn ơi mình thấy công thức lookup theo có 1 điều kiện là cột GPE, giả sử như có thêm cột kế bên cột GPE là mã hàng a,b, c... dựa theo hai dk là GPE + mã hàng mình có tham khảo công thức mảng trên web, bạn xem link , topic gần cuối nhưng công thức dài quá.
[=INDEX($H$1:$H$8,SMALL(IF((B1=$G$1:$G$8)*(A1=$F$1:$F$8),ROW($G$1:$G$8)-MIN(ROW($G$1:$G$8))+1,""),COUNTIFS($B$1:B1,B1,$A$1:A1,A1)))/QUOTE]
cám ơn bạn
 
[Thongbao]Chào các anh chị có thể viết vba rút gọn cho công thức tìm klếm theo hai điều kiện và lấy giá trị tiếp theo như vấn đề trong topic này.
mình tham khảo công thức mảng ở link này nhưng thấy dài quá, và load công thức rất lâu.
cám ơn các anh chị[/Thongbao]
SA_DQ cho mình hỏi khi nào thì giá trị kết quả trả về là Nothing vậy?
HIc Mình đã tìm ra rùi :)
 
Lần chỉnh sửa cuối:
Hic! y' mình là ví dụ xe 73l không còn hoạt động nữa nên có thể bỏ qua nó. rồi tính ngày nghĩ dài nhất. ví dụ từ ngày 11/9/2009 - 9/10/2010 chẳng hạn.
 

File đính kèm

Nhờ các cao thủ chỉ giáo giùm đệ đệ!

Nhờ các huynh chỉ giùm em ở cột D,E,F,G và ở cột A em muốn loại bỏ bớt một số đài thì làm thế nào.!
 

File đính kèm

Lần chỉnh sửa cuối:

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

Back
Top Bottom