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

  • 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 .
Status
Không mở trả lời sau này.

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
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom