Các câu hỏi về hàm dò tìm dữ liệu (Lookup, Vlookup, Hlookup...) (1 người xem)

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

Closed poll

  • 1

    Votes: 1 100.0%
  • 2

    Votes: 0 0.0%

  • Total voters
    1
  • Poll closed .

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

Status
Không mở trả lời sau này.
Cảm ơn sự giúp đỡ của bạn rất nhiều, kết quả như mình mong đợi.
Bạn có thể hỗ trợ the7m cho mình code của nút Save trong file đính kèm không ?

Mình chưa hiểu ý nghĩa của nút SAVE lắm. Nếu là save file thông thường thì đã có nút Save trên thanh Manu rồi, hay bạn muốn khi nhấn nút Save thì sẽ lấy dữ liệu điền vào sheet FINAL?
 
1 vấn đề về Vlookup

Cho tôi hỏi: lỗi này thì phải khắc phục như thế nào, khi định dạng của dữ liệu vào đầu tiên hàm Vlookup là 1 định dạng số chứ không phải text
 

File đính kèm

Cho tôi hỏi: lỗi này thì phải khắc phục như thế nào, khi định dạng của dữ liệu vào đầu tiên hàm Vlookup là 1 định dạng số chứ không phải text
Công thức của bạn đang là:
=VLOOKUP(RIGHT(B3,1),F15:G16,2,0)​
Nó báo #NA! vì hàm RIGHT trả về giá trị chuỗi, và không thể lấy chuỗi đi dò với số.

Vậy thì bạn chuyển kết quả của RIGHT thành số, bằng nhiều cách: nhân với 1, cộng với 0, luỹ thừa 1, v.v... Nói chung là một phép tính gì đó mà không làm thay đổi giá trị.

Công thức của bạn có thể sửa như sau:

=VLOOKUP(RIGHT(B3)*1,F15:G16,2,0)

=VLOOKUP(RIGHT(B3)^1,F15:G16,2,0)

=VLOOKUP(RIGHT(B3)+0,F15:G16,2,0)

v.v...​
 
Cho tôi hỏi: lỗi này thì phải khắc phục như thế nào, khi định dạng của dữ liệu vào đầu tiên hàm Vlookup là 1 định dạng số chứ không phải text
Nhân thêm 1 ở trước hàm RIGHT là ăn tiền:
PHP:
=VLOOKUP(1*RIGHT(B3,1),F15:G16,2,0)
 
Giúp mình sử dụng hàm VLOOKUP trong trường hợp này

Mình nghĩ dùng hàm VLOOKUP kết hợp hàm IF và AND nhưng mình không rành về thao tác mong nhận được sự giúp đỡ của mọi người
Xin xem File đính kèm
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn chép hai công thức bên dưới vào đúng vị trí rồi Fill xuống là được.
PHP:
[J7]=VLOOKUP(LEFT(B7,1),Bảng!$C$14:$F$16,(ROUNDUP((E7/10),0)+1),0)
[K7]=VLOOKUP(RIGHT(B7,1),Bảng!$C$21:$D$23,2)*J7
Thân.
 
Bạn chép hai công thức bên dưới vào đúng vị trí rồi Fill xuống là được.
PHP:
J7=VLOOKUP(LEFT(B7,1),Bảng!$C$14:$F$16,(ROUNDUP((E7/10),0)+1),0)
Công thức này chưa đúng đâu nha! Thử cho Trọng lượng >30 xem nó ra cái gì
Cái này đây:
PHP:
=VLOOKUP(LEFT($B7),Bảng!$C$12:$F$16,MIN(INT(($E7-1)/10)+2,4),0)
 
Sorry! Sơ xuất quá! Hiiii
PHP:
=VLOOKUP(LEFT(B7,1),Bảng!$C$14:$F$16,MIN(ROUNDUP((E7/10),0)+1,4),0)
Thân.
 
Các bạn cho mình xin cái link nói về hàm MIN và ROUNDUP luôn nha ,cám ơn nhiều
 
ndu96081631 đã viết:
Công thức này chưa đúng đâu nha! Thử cho Trọng lượng >30 xem nó ra cái gì
Cái này đây:
=VLOOKUP(LEFT($B7), Bảng!$C$12:$F$16, MIN(INT(($E7-1)/10)+2, 4), 0)
Hì hì, anh ndu96081631 ngừa đầu trên mà quên trừ đầu dưới.
Thử cho trọng lượng <1kg xem nó ra gì nha (gửi thư đi Mỹ, có mấy lạng à anh ơi, với lại bên bảng 1, họ nói là từ 0 cho đến 10, thì mình phải tính từ 0 chớ...)

Cái này nè:
=VLOOKUP(LEFT($B7), Bảng!$C$12:$F$16, MAX(2, MIN(INT(($E7-1)/10)+2, 4)), 0)​
Của Pi_Kachu cũng vậy:
=VLOOKUP(LEFT(B7,1), Bảng!$C$14:$F$16, MAX(2, MIN(ROUNDUP((E7/10),0)+1,4)), 0)​



Các bạn cho mình xin cái link nói về hàm MIN và ROUNDUP luôn nha ,cám ơn nhiều
Bạn nhấn vào mục Tra cứu Hàm Excel ở dưới chữ ký của tôi, có đủ hết, không thiếu một hàm nào.
 
Lần chỉnh sửa cuối:
Trong bài này mình còn một số câu chưa giải quyết được mong được chỉ giáo
1)Tính cột VND=tổng cộng theo ngoại tệ *Tỷ giá
2)Rút trích danh sách(kèm bảng kết quả chi tiết )những bưu phẩm gửi đi Mỹ có trọng lượng 15kg trở lên
3)Rút trích danh sách(kèm bảng kết quả chi tiết )những bưu phẩm có số tiền phải trả VNĐ trong khoảng từ 100000 đến 150000
Chú ý :Điều kiện ,kết quả rút trích được thể hiện trên những vùng riêng biệt
4)Thống kê tổng tiền theo từng địa điểm và vẽ đồ thị cột
5)thống kê hiệu suất khai thác bưu cước ở từng quốc gia .Vẽ đồ thị tròn (pie-chart)
Xin chân thành cảm ơn
 
Hì hì, anh ndu96081631 ngừa đầu trên mà quên trừ đầu dưới.
Thử cho trọng lượng <1kg xem nó ra gì nha (gửi thư đi Mỹ, có mấy lạng à anh ơi, với lại bên bảng 1, họ nói là từ 0 cho đến 10, thì mình phải tính từ 0 chớ...)
.
Tất nhiên tôi biết điều này... và công thức tôi tạo ra là do "nhìn" vào dự liệu thật
- Thứ nhất: Điều kiện nói rằng TL luôn >0
- Thứ hai: "nhìn" dử liệu ta thấy nó là số nguyên dương (tức nhỏ nhất là 1)
Ẹc... Ẹc...
 
Vậy bác test dùm em công thức này đạt chuẩn chưa!
PHP:
=VLOOKUP(LEFT(B7,1),Bảng!$C$14:$F$16,MAX((E7>0)+(E7>10)+(E7>20)+1,2),0)
Heeee
Thân.
 
Lần chỉnh sửa cuối:
Hàm Vlookup với 5 điều kiện

Gửi các bạn nghiên cứu hàm tự tạo "Vlookup với 5 điều kiện" mình sưu tầm được, nó sẽ giúp ích cho các bạn khi cần vì thông thường ta phải dùng Sumproduct để thay thế rất nặng.

Mã:
Function Five_Con_Vlookup(Table_Range As Range, Return_Col As Long, Col1_Fnd, Col2_Fnd, Col3_Fnd, Col4_Fnd, Col5_Fnd)
     ''EXCEL 2003 OR ABOVE
     ''WRITTEN BY OZGRID.COM
    Dim rCheck As Range, bFound As Boolean, lLoop As Long
     
    On Error Resume Next
    Set rCheck = Table_Range.Columns(1).Cells(1, 1)
    With WorksheetFunction
        For lLoop = 1 To .CountIf(Table_Range.Columns(1), Col1_Fnd)
            Set rCheck = Table_Range.Columns(1).Find(Col1_Fnd, rCheck, xlValues, xlWhole, xlNext, xlRows, False)
            If UCase(rCheck(1, 2)) = UCase(Col2_Fnd) And _
            UCase(rCheck(1, 3)) = UCase(Col3_Fnd) And _
            UCase(rCheck(1, 4)) = UCase(Col4_Fnd) And _
            UCase(rCheck(1, 5)) = UCase(Col5_Fnd) Then
                bFound = True
                Exit For
            End If
        Next lLoop
    End With
     
    If bFound = True Then
        Five_Con_Vlookup = rCheck(1, Return_Col)
    Else
        Five_Con_Vlookup = "#N/A"
    End If
End Function
 

File đính kèm

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

File đính kèm

Em chỉ cần tính lương trên và dưới 5tr thôi, vì Công ty Em không ai quá 10tr cả! Các Bác giúp em 1 Công thức cụ thể! **~**
 
Gửi các bạn nghiên cứu hàm tự tạo "Vlookup với 5 điều kiện" mình sưu tầm được, nó sẽ giúp ích cho các bạn khi cần vì thông thường ta phải dùng Sumproduct để thay thế rất nặng.

Mã:
Function Five_Con_Vlookup(Table_Range As Range, Return_Col As Long, Col1_Fnd, Col2_Fnd, Col3_Fnd, Col4_Fnd, Col5_Fnd)
     ''EXCEL 2003 OR ABOVE
     ''WRITTEN BY OZGRID.COM
    Dim rCheck As Range, bFound As Boolean, lLoop As Long
     
    On Error Resume Next
    Set rCheck = Table_Range.Columns(1).Cells(1, 1)
    With WorksheetFunction
        For lLoop = 1 To .CountIf(Table_Range.Columns(1), Col1_Fnd)
            Set rCheck = Table_Range.Columns(1).Find(Col1_Fnd, rCheck, xlValues, xlWhole, xlNext, xlRows, False)
            If UCase(rCheck(1, 2)) = UCase(Col2_Fnd) And _
            UCase(rCheck(1, 3)) = UCase(Col3_Fnd) And _
            UCase(rCheck(1, 4)) = UCase(Col4_Fnd) And _
            UCase(rCheck(1, 5)) = UCase(Col5_Fnd) Then
                bFound = True
                Exit For
            End If
        Next lLoop
    End With
     
    If bFound = True Then
        Five_Con_Vlookup = rCheck(1, Return_Col)
    Else
        Five_Con_Vlookup = "#N/A"
    End If
End Function
nếu số lượng điều kiện không bị khống chế là 5,có thể 2,3,4 tùy theo thì hay biết mấy và tên công thức ngắn gọn 1 chút cho dễ sử dụng.Bác nào ra tay cho anh em được nhờ nhé
 
Anh thay tất cả cụm "Five_con_Vlookup" trong code thành gì cũng được mà, "VLOOKUPS" chẳng hạn. Còn số điều kiện thì có lẽ phải sửa lại code tý tẹo. Em thử mày mò sửa lại với tên là VLOOKUPS và 4 điều kiện.

Mã:
Function VLOOKUPS(Table_Range As Range, Return_Col As Long, Col1_Fnd, Col2_Fnd, Col3_Fnd, Col4_Fnd)
     
    Dim rCheck As Range, bFound As Boolean, lLoop As Long
     
    On Error Resume Next
    Set rCheck = Table_Range.Columns(1).Cells(1, 1)
    With WorksheetFunction
        For lLoop = 1 To .CountIf(Table_Range.Columns(1), Col1_Fnd)
            Set rCheck = Table_Range.Columns(1).Find(Col1_Fnd, rCheck, xlValues, xlWhole, xlNext, xlRows, False)
            If UCase(rCheck(1, 2)) = UCase(Col2_Fnd) And _
            UCase(rCheck(1, 3)) = UCase(Col3_Fnd) And _
            UCase(rCheck(1, 4)) = UCase(Col4_Fnd) Then
                bFound = True
                Exit For
            End If
        Next lLoop
    End With
     
    If bFound = True Then
        VLOOKUPS = rCheck(1, Return_Col)
    Else
        VLOOKUPS = "#N/A"
    End If
End Function

Các bạn bổ sung giúp phần tùy chọn số điều kiện để khi cần đỡ phải sửa lại code
 
Lần chỉnh sửa cuối:
dùng hàm Vlookup khi có ảnh (picture)

tôi có nhiều bức ảnh, ứng với mỗi bức ảnh là một mã số, vậy tôi muốn dùng hàm vlookup (hoặc hàm gì đó) để khi đánh mã số sẽ cho ra một bức ảnh tuơng ứng
 
Hỏi về bẫy lỗi cho hàm VLOOKUP

Em đang gặp phải 1 vấn đề thế này ạ .Em có 1 form đánh phiếu xuất hàng dùng hàm Vlookup kiểu đơn giản thôi ạ ( em có gửi kèm theo file đây ạ) . Làm thế nào để lồng vào lệnh Vlooup để khi gặp các ô không có giá trị thì nó sẽ trắng để khi in phiếu ra nó đẹp ạ .Vì lệnh em đặt em kéo xuống nhiều ô ,các ô đó khi em k dùng đến thì nhìn rất rối mắt ạ. mọi người giúp em với ạ.Sáng mai em cần nên nếu ai biết cứ SMS em sẽ gọi lại ạ : 0904995758

sửa lại để upload file lên mà k đc . chán thế
 
Lần chỉnh sửa cuối:
Có phải cái hàm VLOOKUP của bạn nó có những trường hợp ra kết quả là #N/A ? và bạn không thích thấy mấy cái đó, muốn nó trắng bóc?

Giả sử bạn đang có hàm VLOOKUP(xzy) với "xyz" là cái gì đó thì bạn biết rồi...
Bi giờ, bạn sửa lại hàm đó như sau:
=IF(ISNA(VLOOKUP(xzy), "", VLOOKUP(xzy))​
Hoặc nếu bạn sử dụng Excel2007 thì dùng cái này:
=IFERROR(VLOOKUP(xzy), "")​
 
Lần chỉnh sửa cuối:
Mình hay dùng hàm Type() để kiểm tra và nó không riêng #N/A mà còn cả các lỗi khác. Công thức như sau:

=IF(Type(VLOOKUP(xzy)=16, "", VLOOKUP(xzy))
 
To BNTT : ĐÚng là lỗi như bạn nói , nhưng sao mính ài công thức của bạn mà k ra

Mình hay dùng hàm Type() để kiểm tra và nó không riêng #N/A mà còn cả các lỗi khác. Công thức như sau:

=IF(Type(VLOOKUP(xzy)=16, "", VLOOKUP(xzy))

Mình cũng sài cả cthức này nhưng nó báo lỗi sai công thức , vậy là sao ạ ?
 
Chỉnh sửa lần cuối bởi điều hành viên:
Có thể máy bạn dùng dấu (;) thay cho dấu phẩy.
=IF(ISNA(VLOOKUP(xzy);"";VLOOKUP(xzy))
Thử lại lần nữa xem!
Hoặc cũng có thể viết như vầy:
=IF(ISERROR(VLOOKUP(xzy);"";VLOOKUP(xzy))
Thân.
 
Công thức như thế này nè bạn:
C6=IF(ISNA(VLOOKUP($A6;NC;3;0));"";VLOOKUP($A6;NC;3;0))
 
Công thức đã bẫy lỗi.
Mã:
=IF(ISNA(VLOOKUP($A4,NC,3,0)),"",VLOOKUP($A4,NC,3,0))
 
giải pháp cho ham Vlookup

tôi giải pháp của các bạn cũng được. tuy nhiên có nhiều giải pháp cho vấn đề này
1.bạn đặc điều kiện trước hàm Vlookup
2. bạn lọc dữ liệu trước khi dùng hàm Vlookup
3. dùng các hàm như các bạn đã đề xuất
Tôi cũng từng gặp vấn đề như trên. tùy loại dữ liệu và yêu cầu mà dùng các cách khác nhau.
 
Mình thêm 1 cách kiểm tra nữa:


=IF(COUNTIF(NC,$A4)=0,"",VLOOKUP($A4,NC,3,0))
 
Hàm Vlookup không cho kết quả theo ý muốn.

Có bạn nào xem dùm mình câu 4 được không?
Mình dùng làm =VLOOKUP(MID(B3,2,1),$G$13:$H$16,2,0)
nhưng không ra kết quả?
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn phải nói rõ mã hàng của bạn cấu trúc ra sao đã, hơn nữa mình nhẩm thôi cũng thấy dơn giá X số lượng không đúng thành tiền được
 
Có bạn nào xem dùm mình câu 4 được không?
Mình dùng làm =VLOOKUP(MID(B3,2,1),$G$13:$H$16,2,0)
nhưng không ra kết quả?
ô G3 bạn gõ công thức:
PHP:
=$F3*(VLOOKUP(--MID($B3,2,1),$G$13:$H$16,2,0)/100)*(VLOOKUP(LEFT($B3),$A$13:$E$16,5,0)<>"X")
Sau đó kéo công thức xuống dưới.
Góp ý: chỗ Đơn giá và thành tiền nên sửa lại cho đơn giản để lập công thức cho nó gọn hơn (phần tô màu vàng trong file đính kèm).
 

File đính kèm

Bạn dùng công thức sau cũng được (Vì còn lúng túng với Vlookup thì công thức của Ca_dafi e hơi khó)
Mã:
=IF(VLOOKUP(LEFT(B3,1),$A$13:$E$16,5,0)="x",0,VLOOKUP(VALUE(MID(B3,2,1)),$G$13:$H$16,2,0)/100)*F3

Để giống với yêu cầu của bài các cột Thành tiền, Thuế, Còn lại định dạng #,##0 "đồng"
 
Lần chỉnh sửa cuối:

File đính kèm

ô G3 bạn gõ công thức:
PHP:
=$F3*(VLOOKUP(--MID($B3,2,1),$G$13:$H$16,2,0)/100)*(VLOOKUP(LEFT($B3),$A$13:$E$16,5,0)<>"X")
Sau đó kéo công thức xuống dưới.
Góp ý: chỗ Đơn giá và thành tiền nên sửa lại cho đơn giản để lập công thức cho nó gọn hơn (phần tô màu vàng trong file đính kèm).

Cám ơn bạn đã góp ý nhưng đề bài người ta cho sao mình tự sửa đề được.
 
Cám ơn bạn đã góp ý nhưng đề bài người ta cho sao mình tự sửa đề được.
Cũng có cách, chỉ sợ là cách này, hỏng biết thầy của bạn có hiểu không thôi...
Cứ để nguyên chữ đồng trong Thành Tiền, ở cột Thuế, bạn dùng cái này nha:
=IF(VLOOKUP(LEFT(B3), $A$13:$E$16,5,0)="x", 0, VLOOKUP(VALUE(MID(B3,2,1)), $G$13:$H$16,2,0)/100) * SUBSTITUTE(F3, " Đồng", "")​
 
Hic, đúng rùi đấy. Các bác nên tập trung giải thích thắc mắc cho người hỏi thôi. Người hỏi chỉ hỏi tại sao dùng Vlookup không ra mà. Như bác BNTT giải thích, dùng VLOOKUP không ra được là do giá trị của cột đơn giá là text vì vậy không thể dùng để nhân được (cột đơn giá bao gồm cả số và chữ)

Dùng cách thông dụng hơn:
SUBSTITUTE(F3, " Đồng","") tương đương với Left(F3,len(F3)-5)
 
Lần chỉnh sửa cuối:
Mình nghĩ ra cách làm như vậy nè:
Thành tiền: =LEFT(IF(D3=1,VLOOKUP(LEFT(B3,1),$A$13:$D$16,3,0),VLOOKUP(LEFT(B3,1),$A$13:$D$16,4,0)),LEN(VLOOKUP(LEFT(B3,1),$A$13:$D$16,4,0))-4)
như vậy sẽ bỏ được chữ "đồng" mà sẽ tiện cho câu tính Còn lại: thành tiền - thuế.
Thuế: công thức vẫn giữ như bạn sealand đã làm.
 
Có bạn nào xem dùm mình câu 4 được không?
Mình dùng làm =VLOOKUP(MID(B3,2,1),$G$13:$H$16,2,0)
nhưng không ra kết quả?
Theo như đề bài thì bạn thử dùng CT dưới xem.
Mã:
=VLOOKUP(MID(B3,2,1)*1,$G$13:$H$16,2,0)/100*LEFT(F3,FIND(" ",F3))
 
Có bạn nào xem dùm mình câu 4 được không?
Mình dùng làm =VLOOKUP(MID(B3,2,1),$G$13:$H$16,2,0)
nhưng không ra kết quả?
Bạn àh, Công thức của bạn không ra kết quả là đúng.
Bạn dùng hàm Mid(B3,2,1) sẽ ra kết quả là một kí tự.còn giá trị G13 lại là một số.Bạn phải chuyển đổi chúng về cùng một loại giá trị.
Bạn Thử dùng công thức này nhé = VLOOKUP(Value(MID(B3,2,1)),$G$13:$H$16,2,0)
Chúc bạn thành công
)(&&@@
 
ở đây mình làm lại hai câu thành tiền và thuế luôn nha:
bạn coi câu nào được thì sử dụng:
thu nhat tinh thanh tien :=VLOOKUP(LEFT(B3),$A$13:$E$16,IF(D3=1,3,4),0)
tiep theo la cau thue:=IF(OR(LEFT(B3)="h",LEFT(B3)="c"),VLOOKUP(VALUE(MID(B3,2,1)),$G$13:$H$16,2,0)*LEFT(F3,LEN(F3)-5),0)
 

File đính kèm

Em dùng Vlookup nhưng đến mã 25 thì công thức không nhảy

em có cái phiếu xuất hàng dùng hàm vlôkup nhưng đến loookup_value thứ 25 thì công thức k nhảy.mọi người xem giúp em với .

 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Sao lại không nhảy ? bạn có giử tọa độ lại không ?
Nó phải giử lại như sau:
=VLOOKUP(B3,Material_Sheet!$B$4:$C$212,2,0)
Thân
 
Đơn giản vì vùng tra NC của bạn chỉ đến mã hàng 24, nên từ mã 25 trở đi không tìm được giá trị rồi.
 
dẠ k đâu ạ.vùng chọn của em là cả sheet NC mà em gửi cho anh rồi đấy ạ . anh xem giúp em hoặc up file đó lên cho mọi người nhìn giúp em với ạ

ầ. em sửa lại ddc rồi ạ . cám ơn mọi người nhiều.fiền mọi người quá
 
Chỉnh sửa lần cuối bởi điều hành viên:
dẠ k đâu ạ.vùng chọn của em là cả sheet NC mà em gửi cho anh rồi đấy ạ . anh xem giúp em hoặc up file đó lên cho mọi người nhìn giúp em với ạ

Mình đã xem File và up lên cho mọi người ở bài #2, bạn xem lại đi, vùng NC của bạn chỉ đến dòng mã hàng 24 thôi, bạn thay trong công thức NC thành NC!$A$3:$D$101 thì sẽ chạy ra KQ thôi.
 
hỏi về vlookup

- Em đang học hàm vlookup (tìm kiếm trên nhiều sheet). Quan sát hàm của bác Anhtuan thấy
có dấu ' đằng trước tên workbook và dấu ' trước dấu ! tên sheet
{=VLOOKUP($A2;INDIRECT("'"&INDEX($E$2:$E$5;MATCH(TRUE;(COUNTIF(INDIRECT("'"&$E$2:$E$5&"'!A2:D10");$A2)>0);0))&"'!A2:D10");COLUMN();0)}
------
- Em thử test thấy nếu trong cùng một workbook trong link công thức không thấy có dấu phẩy
Nhưng nếu ta link sang một workbook khác thì sẽ có dấu ' ở trước workbook và dấu ' ở trước dấu !

Nhưng trường hợp công thức trên (công thức chuẩn) tìm kiếm giá trị có ở nhiều sheet trong cùng một workbook ---> sao ta lai phải thêm dấu ' đằng trước workbook và dấu ! ạh
--------------


Em vẫn còn rất kém cỏi, mong các anh chị chỉ giúp

Xin cám ơn
 
Lần chỉnh sửa cuối:
Nhưng trường hợp công thức trên (công thức chuẩn) tìm kiếm giá trị có ở nhiều sheet trong cùng một workbook ---> sao ta lai phải thêm dấu ' đằng trước workbook và dấu ! ạh
n
Để phòng trường hợp người ta đặt tên sheet không chuẩn: Tên sheet có dấu tiếng Việt, tên sheet có số, tên sheet có khoảng trằng... vân vân...
Bạn thử xem sẽ biết liền
-----------
Câu hỏi còn lại: Bạn đưa file lên xem thử nhé!
 
Lần chỉnh sửa cuối:
Để phòng trường hợp người ta đặt tên sheet không chuẩn: Tên sheet có dấu tiếng Việt, tên sheet có số, tên sheet có khoảng trằng... vân vân...
Bạn thử xem sẽ biết liền

Anh ơi
Nhưng tại sao khi em thử xóa dấu phẩy đi --> công thức sai ngay...(theo như anh nói chỉ là phòng trường hợp thôi mà)

Cám ơn Anh
 
Anh ơi
Nhưng tại sao khi em thử xóa dấu phẩy đi --> công thức sai ngay...(theo như anh nói chỉ là phòng trường hợp thôi mà)

Cám ơn Anh

Cái này mặc định của Excel rồi em ạ, cứ thế mà làm nhé, không sửa được đâu.
 
Anh ơi
Nhưng tại sao khi em thử xóa dấu phẩy đi --> công thức sai ngay...(theo như anh nói chỉ là phòng trường hợp thôi mà)

Cám ơn Anh
Trong trường hợp tên sheet là CHUẨN, tôi bỏ dấu nháy đi đâu có vấn đề gì chứ
Bạn xem file đây
 

File đính kèm

Tôi xin nói thêm vài điểm:
- Hãy thí nghiệm bằng cách tạo 1 file với 2 sheets, với tên sheet có khoảng trắng hoặc có số (ví dụ là ST LU hoặc ST LU 01)
- Đứng ở 1 sheet, tạo công thức =Sheet kia!A1 ... Sau khi Enter xong, hay để ý tên sheet trong công thức có dấu nháy hay ko?
- Bây giờ đổi tên sheet thành dạng chuẩn (ví dụ: STLU) rồi xem lại tên sheet trong công thức (dấu nháy đã mất)
---------------------------
Với file đính kèm ở bài số #5, nếu chịu khó nghiên cứu thì các bạn có thể đặt câu hỏi thắc mắc như sau:
- Tại sao công thức:
=VLOOKUP($A2,INDIRECT("'"&INDEX($E$2:$E$4,MATCH(TRUE,(COUNTIF(INDIRECT("'"&$E$2:$E$4&"'!A2:A100"),$A2)>0),0))&"'!A2:C100"),3,0)
ko sửa lại thành:
=VLOOKUP($A2,INDIRECT("'"&INDEX($E$2:$E$4,MATCH(1,(COUNTIF(INDIRECT("'"&$E$2:$E$4&"'!A2:A100"),$A2)),0))&"'!A2:C100"),3,0)
(gọn hơn 1 chút)
Thử nghiên cứu xem!
 
- Tại sao công thức:
=VLOOKUP($A2,INDIRECT("'"&INDEX($E$2:$E$4,MATCH(TRUE,(COUNTIF(INDIRECT("'"&$E$2:$E$4&"'!A2:A100"),$A2)>0),0))&"'!A2:C100"),3,0)
ko sửa lại thành:
=VLOOKUP($A2,INDIRECT("'"&INDEX($E$2:$E$4,MATCH(1,(COUNTIF(INDIRECT("'"&$E$2:$E$4&"'!A2:A100"),$A2) ),0))&"'!A2:C100"),3,0)
(gọn hơn 1 chút)

Công thức trên của bác là tạo ra một mảng true (mảng này dựa vào điều kiện >0). Sau đó ta sẽ đi tim vị trí của True băng match
Tất cả việc trên được hỗ trợ bởi Indirect và công thức mảng
--------------
Còn công thức bên dưới không tạo ra mảng true nên không thể mathc với giá trị = 1 được

Em nói như vậy đã đúng tẹo nào không bác
 
Công thức trên của bác là tạo ra một mảng true (mảng này dựa vào điều kiện >0). Sau đó ta sẽ đi tim vị trí của True băng match
Tất cả việc trên được hỗ trợ bởi Indirect và công thức mảng
--------------
Còn công thức bên dưới không tạo ra mảng true nên không thể mathc với giá trị = 1 được

Em nói như vậy đã đúng tẹo nào không bác
Bạn có từng nghĩ đến việc: Tìm kiếm bị trùng ko? Tức kết quả hàm COUNTIF cho giá trị >1 ... Vậy nếu ta MATCH(1,.....) đối với file trên thì không có vấn đề... nhưng trong trường hợp có MÃ TRÙNG, ta dùng MATCH(1,.....) sẽ sai ngay (khi ấy trong mãng chẳng có số 1 nào cả)
Bởi vậy, chắc ăn phải là MATCH(TRUE,(COUNTIF(...)>0),0)... Tức hể TÌM THẤY CÓ LÀ LẤY, bất kể có trùng hay ko
 
Các pac bỏ giúp em cái cột phụ trong bảng tính dùng Vlookup này nhé.
 

File đính kèm

Mình muốn lập công thức Vlookup để khi ta thay đổi địa chỉ vùng tham chiếu ( thêm cột, hay thêm hàng) thì hàm Vlookup vẫn hiểu .Cảm ơn mọi người.
 
Mình muốn lập công thức Vlookup để khi ta thay đổi địa chỉ vùng tham chiếu ( thêm cột, hay thêm hàng) thì hàm Vlookup vẫn hiểu .Cảm ơn mọi người.

Cái này Excel tự hiểu, bạn cứ làm thông thường thôi là được.
 
Hay thật đấy.Thanh kiu pac ndu96081631
user_offline.gif


nhe
 
Ý mình là khi thêm vào trước cột cần tham chiếu thì kết quả thay dổi. Bản xem file giùm!
 

File đính kèm

Có cách nào biến đổi được hàm VLOOKUP?

Kính gửi: Diễn đàn
Mình sử dụng hàm vlookup có cú pháp là: vlookup(trị dò;bảng dữ liệu;cột tham chiếu;cách dò) mình thấy cột tham chiếu là 1 thì sẽ dò cột bên cạnh, là 2 sẽ dò cột tham chiếu cách 2 tính từ trái sang phải. Vậy nếu mình muốn dò từ phải sang trái thì phải làm sao? Xin nhờ anh em giúp đỡ.
 
Kính gửi: Diễn đàn
Mình sử dụng hàm vlookup có cú pháp là: vlookup(trị dò;bảng dữ liệu;cột tham chiếu;cách dò) mình thấy cột tham chiếu là 1 thì sẽ dò cột bên cạnh, là 2 sẽ dò cột tham chiếu cách 2 tính từ trái sang phải. Vậy nếu mình muốn dò từ phải sang trái thì phải làm sao? Xin nhờ anh em giúp đỡ.
Ta không "biến đổi" hàm VLOOKUP mà dùng HÀM KHÁC cho trường hợp này!
Bạn nghiên cứu INDEX xem ---> Tôi nghĩ nó hoàn toàn phù hợp với yêu cầu của bạn!
Xem ví dụ đính kèm
 

File đính kèm

Lần chỉnh sửa cuối:
Kính gửi: Diễn đàn
Mình sử dụng hàm vlookup có cú pháp là: vlookup(trị dò;bảng dữ liệu;cột tham chiếu;cách dò) mình thấy cột tham chiếu là 1 thì sẽ dò cột bên cạnh, là 2 sẽ dò cột tham chiếu cách 2 tính từ trái sang phải. Vậy nếu mình muốn dò từ phải sang trái thì phải làm sao? Xin nhờ anh em giúp đỡ.
Thì dùng hàm khác, không dùng VLOOKUP nữa. Ví dụ: hàm INDEX, OFFSET, v.v...
Dùng hàm gì, dùng như thế nào, thì tùy thuộc vào mỗi loại bài toán. Bạn đưa bài toán cụ thể lên đây, sẽ có hướng giải quyết cho bài toán đó.
 
Kính gửi: Diễn đàn
Mình sử dụng hàm vlookup có cú pháp là: vlookup(trị dò;bảng dữ liệu;cột tham chiếu;cách dò) mình thấy cột tham chiếu là 1 thì sẽ dò cột bên cạnh, là 2 sẽ dò cột tham chiếu cách 2 tính từ trái sang phải. Vậy nếu mình muốn dò từ phải sang trái thì phải làm sao? Xin nhờ anh em giúp đỡ.

Hàm Vlookup(trị dò;bảng dữ liệu;cột tham chiếu;cách dò)
Trong đó trị dò phải tương ứng cột đầu tiên trong bảng dò, trường hợp của bạn thì dùng hàm Index và match.
 

File đính kèm

Theo mình thì không dò được như vậy đâu, cột trị dò (mã dò) luân phải nằm ở bên trái, nếu bạn muốn dò ở từ bên phải qua thì nên tìm cách chuyển các cột cần dò qua bên trái cột mã dò (copy qua bên trái hoặc tạo một cột ở bên trái "=" cột ở bên phải cần dò) sau đó che đi là xong.
 
Mình gởi file đính kèm, nếu hoán chuyễn cột dò tìm trong bảng dữ liệu thì được, nhưng mình không muốn chuyển, vì trong nhiều trường hợp chuyển đi sẽ phiền phức. Trong trường hợp này phải dùng hàm gì nhờ anh em giúp đở.
 

File đính kèm

Mình gởi file đính kèm, nếu hoán chuyễn cột dò tìm trong bảng dữ liệu thì được, nhưng mình không muốn chuyển, vì trong nhiều trường hợp chuyển đi sẽ phiền phức. Trong trường hợp này phải dùng hàm gì nhờ anh em giúp đở.

Bạn đã đọc kỹ các bài trên chưa, không cần hoán đổi vị trí các cột đâu, dùng hàm INDEX kết hợp với MATCH là được rồi. Mấy bài trước các bạn đã đưa file sử dụng INDEX và MATCH lên rồi mà.
 
Mình coi file mẫu rồi, có phải bạn muốn theo dõi chi tiết xem từng máy tình trạng thế nào? nằm ở đâu phải ko? Nếu thế thì ko để chung trong bảng NXT được đâu, bởi vì bảng NXT theo dõi tổng hợp từng loại máy mà. Bạn phải lập bảng khác để theo dõi cho chi tiết, tình trạng của từng loại máy.
 
Bạn có file nào tương tự về cách theo dõi tình trạng máy móc thiết bị không cho mình tham khảo với. Cảm ơn nhiều.
 
Lần chỉnh sửa cuối:
Bạn dùng Filter xem, cần lấy thông tin nào thì lựa tại cột đó, ko can them bang dau.
 
Xin hướng dẫn về VLOOKUP

Em đang làm bảng lương. Trong phần ngày công em đặt công thức tự động điền số ngày công (từ bảng chấm công) như sau:
"=IF(ISERROR(VLOOKUP(CC_MNV;CC;38;FALSE))=TRUE;"";VLOOKUP(CC_MNV;CC;38;FALSE))" nghĩa là nếu không có mã nhân viên thì không cho kết quả; nếu có mã nhân viên thì điền số ngày công.
(CC_MNV là cột Mã nhân viên; CC là mảng vùng chấm công; 38 là số thứ tự của cột Ngày công tại Sheet Chấm công)
Em đặt công thức tại ô đầu tiên của cột Ngày công tại Sheet Bảng lương thì ra kết quả đúng. Em kéo chuột từ ô đó xuống cuối bảng thì thấy có kết quả đến ô thứ 21, còn từ ô 22 trở đi thì không hiện kết quả gì.
Em không biết vì sao nữa. Em đã kiểm tra lại các Name: CC_MNV, CC đều đúng và đủ cả.
Liệu có phải là hàm này chỉ giới hạn 21 ô thôi không ạ?
Mong các anh chị giúp em nhé.
Em cảm ơn nhiều!
 
Bạn đưa file lên. Vì thời gian sửa giúp bạn 1 nhưng lập danh sách giả định lại tốn tgian gấp nhiều lần.
 
Không có trường hợp đó đâu bạn. Có thể do dữ liệu không trùng hợp giữa CC_MNV CC (dòng đầu) không giống nhau nên nó ra rỗng. Bạn đưa file đó lên đi.
Thân.
 

File đính kèm

Bạn xem lại cái công thức này trong Name nè!
PHP:
CC_MNV=CC!$B$6:$B$29
Nó chỉ có đến ô số 29 à! Vậy làm sao mà đúng được.
Và công thức này đâu có liên quan gì đến dữ liệu trên Sheet Lương đâu?
PHP:
=IF(ISERROR(VLOOKUP(CC_MNV,CC,38,0))=TRUE,"",VLOOKUP(CC_MNV,CC,38,0))
Công thức đúng là vầy:
PHP:
=IF(ISERROR(VLOOKUP(B9,CC,38,0))=TRUE,"",VLOOKUP(B9,CC,38,0))
Hoặc:
PHP:
=IF(ISERROR(VLOOKUP(L_MNV,CC,38,0))=TRUE,"",VLOOKUP(L_MNV,CC,38,0))
Và đây là file đã chỉnh!
Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem lại cái công thức này trong Name nè!
PHP:
CC_MNV=CC!$B$6:$B$29
Nó chỉ có đến ô số 29 à! Vậy làm sao mà đúng được.
Và công thức này đâu có liên quan gì đến dữ liệu trên Sheet Lương đâu?
PHP:
=IF(ISERROR(VLOOKUP(CC_MNV,CC,38,0))=TRUE,"",VLOOKUP(CC_MNV,CC,38,0))
Công thức đúng là vầy:
PHP:
=IF(ISERROR(VLOOKUP(B9,CC,38,0))=TRUE,"",VLOOKUP(B9,CC,38,0))
Hoặc:
PHP:
=IF(ISERROR(VLOOKUP(L_MNV,CC,38,0))=TRUE,"",VLOOKUP(L_MNV,CC,38,0))
Và đây là file đã chỉnh!
Thân.
Hic, xấu hổ quá. Vậy mà em kiểm tra lại mà không thấy.
Cho em hỏi số 0 ở cuối công thức có ý nghĩa thế nào ạ?
Ý quên, em cảm ơn nhiều ạ.
 
Em đã bổ sung name động cho bạn rồi đó. Bạn tải file lại nha!
Và cảm ơn thì chỉ cần nhấn nút "Cảm ơn" là được rồi. Viết ra thì hơi dư thừa đó.
Thân.
 
hướng dẫn vlookup

Mình có file cần điền dữ liêu. các bạn chỉ cho mình cách làm nhé.
 

File đính kèm

VLOOKUP($A$2;serial!$A$2:$B$9;2;0)
Những bài như này trên diễn đàn có rất nhiều,bạn chịu khó tìm nhé
 
Bạn copy paste qua là được rồi.
Vlookup ở tình huống này đâu cần thiết đâu, và thật sự cũng không thể dùng hàm Vlookup được đâu.
Vì cột Tên có nhiều dòng trùng nhau quá.
Thân.
 
Ứng dụng hàm Vlookup để làm hồ sơ nhanh

Em gặp phải một vấn đề, khi làm hồ sơ nghiệm thu để tiết kiệm thời gian và kiểm tra được dễ dàng. Em thấy người ta sử dụng một sheet làm data, còn các sheep còn lại sẽ gọi số liệu từ trang data này. đây là một ví dụ.
Bác nào giúp em để links được số liệu từ trang data được không?
 
Em gặp phải một vấn đề, khi làm hồ sơ nghiệm thu để tiết kiệm thời gian và kiểm tra được dễ dàng. Em thấy người ta sử dụng một sheet làm data, còn các sheep còn lại sẽ gọi số liệu từ trang data này. đây là một ví dụ.
Bác nào giúp em để links được số liệu từ trang data được không?
Tiêu đề của bạn là Ứng dụng hàm Vlookup để làm hồ sơ nhanh ---> Vậy thì bạn xây dụng liên kết bằng VLOOKUP đi ---> Có vấn đề gì chứ? Hay bạn không biết dùng hàm VLOOKUP? Vậy thì tham khảo cái này: Hàm VLOOKUP
 
Các anh ơi,các anh hướng dẫn cụ thể về cách ứng dụng hàm Vlookup giúp em với,em mới sủ dụng excel nên chưa rành lắm.thanks
 
Các anh ơi,các anh hướng dẫn cụ thể về cách ứng dụng hàm Vlookup giúp em với,em mới sủ dụng excel nên chưa rành lắm.thanks

Bài của anh ndu96081631 đã có đường link đến cách sử dụng VLOOKUP rồi mà, sao bạn không vào đó xem.
 
Lần chỉnh sửa cuối:
Ý mình là thế này: VD ta sử dụng hàm Vlookup ở sheet 1 với cú pháp : =Vlookup(a1,Sheet2!$a1$:$c$10,3,0).VD kết quả sẽ là giá trị ô C1 ở sheet2, nhưng nếu ta insert thêm một cột trước cột C ở Sheet 2 thì kết quả sẽ thay đổi, lúc này giá trị cần tìm sẽ nhảy qua ô D1,ô C1 trống, vấn đề là làm thế nào để khi đó giá trị tìm kiếm vẫn lấy giá trị của ô D1.
 

File đính kèm

Ý mình là thế này: VD ta sử dụng hàm Vlookup ở sheet 1 với cú pháp : =Vlookup(a1,Sheet2!$a1$:$c$10,3,0).VD kết quả sẽ là giá trị ô C1 ở sheet2, nhưng nếu ta insert thêm một cột trước cột C ở Sheet 2 thì kết quả sẽ thay đổi, lúc này giá trị cần tìm sẽ nhảy qua ô D1,ô C1 trống, vấn đề là làm thế nào để khi đó giá trị tìm kiếm vẫn lấy giá trị của ô D1.
Nếu hai bảng giống nhau thì bạn dùng hàm column()
Mã:
=VLOOKUP($A1,Sheet2!$A$1:$B$10,[COLOR=Red]COLUMN()[/COLOR],0)
Còn đâu thì tùy vào dữ liệu của bạn mới biết sử dụng hàm nào cho hợp lý.
 
Ý mình là thế này: VD ta sử dụng hàm Vlookup ở sheet 1 với cú pháp : =Vlookup(a1,Sheet2!$a1$:$c$10,3,0).VD kết quả sẽ là giá trị ô C1 ở sheet2, nhưng nếu ta insert thêm một cột trước cột C ở Sheet 2 thì kết quả sẽ thay đổi, lúc này giá trị cần tìm sẽ nhảy qua ô D1,ô C1 trống, vấn đề là làm thế nào để khi đó giá trị tìm kiếm vẫn lấy giá trị của ô D1.
Giải pháp là đặt name cho vùng dử liệu nguồn
Xem file
 

File đính kèm

Lần chỉnh sửa cuối:
Bác cop_kh nói đúng rồi bạn ơi vùng tham chiếu của bạn có đến dòng 24 nên em nó không ra kết quả là đúng rồi
 
=IF(ISNA(VLOOKUP($A6,NC!A:D,2,0)),"",VLOOKUP($A6,NC!A:D,2,0))
bạn thử công thức này của mình xem mình làm thử thấy được đó
 
Status
Không mở trả lời sau này.

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

Back
Top Bottom