HÀM VLOOKUP (1 người xem)

Liên hệ QC

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

VLOOKUP

Hàm VLOOKUP sẽ dò tìm một hàng (Row) chứa giá trị mà bạn cần tìm ở cột đầu tiên (bên trái) của một bảng dữ liệu (chữ V trong VLOOKUP có nghĩa là Vertical), nếu tìm thấy, nó sẽ tìm tiếp trong hàng này, và sẽ lấy giá trị ở cột mà bạn đã chỉ định trước.

Cú pháp: =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

lookup_value
: Giá trị dùng để tìm kiếm trong cột đầu tiên của table_array, giá trị này có thể là một số, một chuỗi, hoặc là một tham chiếu

table_array: Bảng dùng để dò tìm, có thể là một vùng tham chiếu hoặc là tên (Name) của một vùng đã được đặt tên

col_index_num: Số thứ tự của các cột trong table_array, chứa kết quả mà bạn muốn tìm kiếm. col_index_num: Số thứ tự này được tính từ trái sang phải (cột chứa lookup_value là cột thứ nhất)

range_lookup: Là một giá trị kiểu Boolean, để chỉ kiểu tìm kiếm: chính xác hay tương đối.
• TRUE (hoặc 1 là mặc định): Là kiểu dò tìm tương đối VLOOKUP sẽ tìm giá trị lookup_value đầu tiên mà nó tìm được trong cột đầu tiên của table_array. Trong trường hợp không tìm ra, nó sẽ trả về giá trị lớn nhất mà nhỏ hơn lookup_value
• FALSE (hoặc 0): Là kiểu dò tìm chính xác VLOOKUP sẽ tìm chính xác giá trị lookup_value trong cột đầu tiên của table_array. Trong trường hợp không có, hoặc lookup_value nhỏ hơn giá trị nhỏ nhất trong cột đầu tiên của table_array, nó sẽ báo lỗi #N/A!

Lưu ý:
• Để có kết quả chính xác khi range_lookup = TRUE, bạn phải sắp xếp các giá trị các giá trị trong cột đầu tiên của table_array từ nhỏ đến lớn.
• Nếu cột đầu tiên của table_array chứa các giá trị kiểu Text, bạn có thể dùng các ký tự đại diện cho lookup_value (dấu * đại diện cho nhiều ký tự / hoặc dấu ? đại diện cho một ký tự)
• Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong cột đầu tiên của table_array, hàm sẽ báo lỗi #N/A!
• Lỗi này thường gặp khi bạn gõ dư một khoảng trắng ở cuối lookup_value
• Nếu không tìm thấy lookup_value khi range_lookup = FALSE, hàm sẽ báo lỗi #N/A!
• Nếu col_index_num nhỏ hơn 1, hàm sẽ báo lỗi #VALUE!, còn nếu col_index_num lớn hơn số cột trong table_array, hàm sẽ báo lỗi #REF!

Ví dụ:
1574388625420.png
 

File đính kèm

Theo ý kiến của cá nhân tôi, nếu được bạn có thể thêm 1 vài ví dụ cho:
1. Sửa lỗi đối với hàm Vlookup
2. Hàm Vlookup kết hợp với 1 số hàm khác.
Xin cảm ơn.

Chỉ cần thêm phần chỉ dẫn kết hợp với Match hoặc HLookup trong tham số thứ 3 (col_index_num) thôi.
Những kết hợp khác (như Choose) thuộc về phần nâng cao.

@thớt:
Cần nhấn mạnh ở điểm TRUE trong tham số thứ tư (range_lookup).
Nếu dãy dò tìm không được sắp xếp theo thứ tự từ nhỏ đến lớn thì kết quả có thể sẽ được trả về không đúng.
Nếu bạn muốn thì có thể bàn thêm về kiến thức nâng cao:
Khi tham số thứ tư là TRUE thì VLOOKUP sẽ dò theo phương pháp nhị phân. Phương pháp này rất nhanh nhưng chỉ áp dụng cho sê ri tăng/giảm dần. Vì vậy, nếu sê ri không theo thứ tự thì kết quả sẽ sai.
 
Ở phần tham số range lookup = false nếu lookup value < giá trị nhỏ nhất của cột đầu tiên thì đương nhiên không thể dò tìm đúng được. Vì thế "nếu lookup_value < giá trị nhỏ nhất..." là lưu ý khi range_lookup=true.
 
Ở phần tham số range lookup = false nếu lookup value < giá trị nhỏ nhất của cột đầu tiên thì đương nhiên không thể dò tìm đúng được. Vì thế "nếu lookup_value < giá trị nhỏ nhất..." là lưu ý khi range_lookup=true.
VLOOKUP là hàm căn bản của Excel.
Hầu như tất cả những người chuyên sử dụng bảng tính đều hiểu rằng hàm này ngầm chứa một sự quan hệ giữa trị cần dò tìm và bảng dò. Và trên cơ sở làm việc, mọi người cần hiểu rằng hàm này dựa trên bảng dò chuẩn. Vì vậy, nếu dùng range lookup mà trả về #N/A thì là chuyện hiển nhiên để người dùng hiểu rằng trị cần tìm nằm ngoài cái range của bảng dò.

Chú: vì các bạn quen dùng bảng tính để làm báo cáo cuối cùng cho nên quen bẫy lỗi. Đối với người sử dụng bảng tính thông thường, ba cái lỗi là cơ hội để họ nhận định những dạng "không chuẩn/ngoại lệ" (exception/outlier) của bảng dữ liệu.
 
Sử dụng vlookup(choose()))).
Lookup. Offset(match())).
Sai vì giá trị dò. Dò không tìm thấy nó báo lỗi #NA.
Hàm Lookup đòi hỏi bảng dò phải được sắp xếp. Chỉ tương đương VLookup với tham số cuối là 1 (True)
Hàm Offset là hàm động (volatile). Mỗi lần bảng tính thay đổi, bất cứ chỗ nào nó cũng tính lại. Khác với hàm thường, chỉ tính lại khi có thay đổi trong dữ liệu tham chiếu.
 
Các bác cho em hỏi sao em tìm kiếm ngày tháng bị lỗi như vậy? Tks tất cả mọi người
Lưu ý:
1. Trong công thức bạn phải cố định ít nhất là dòng của vùng dò và kết quả. Hiện thời bạn không cố định nên khi copy công thức H3 xuống dưới thì vùng dò thay đổi.

2. Nếu tôi hiểu được dụng ý thì cột dò phải là cột C. Tức không phải B3: D6 mà là C3: D6

3. Giá trị trả về là cột nào? Nếu là cột D thì phải là 2. Tức công thức cho H3
Mã:
=VLOOKUP(G3,C$3:D$6,2)

4. Nếu cột dò là C mà cột kết quả là B thì lại phải xoay xở
Công thức cho H3
Mã:
=VLOOKUP(G3,CHOOSE({1;2},C$3:C$6,B$3:B$6),2)
Nếu thấy lỗi thì thử đổi thành {1,2}. Tôi dùng Excel phiên bản Ba Lan nên nó hơi khác ({1\2})

Nếu tôi hiểu đúng thì bạn có trường hợp này.

5. Hiện thời B3 và B4 không là ngày tháng. Chúng chỉ là text giả bộ ngày tháng. Nếu trong tương lai chúng dùng để tính toán thì sẽ sai.
 
Lần chỉnh sửa cuối:
mọi người ơi giúp em trường hợp này với. em muốn trừ tồn cho cho cột ITEM (dữ liệu cần trừ là bảng bên cạnh) nhưng đồng thời trừ phải tương ứng với cột SEAL. minh dùng hàm vlookup kết hợp choose đúng không ạ?
Capture.JPG
 

File đính kèm

Mọi người chỉ em khách khắc phục lỗi #N/A trong Vlookup với,
Khi em copy và dán tên ( hàng hóa) vào cột E, thì Cột D không tự dò mà tương ứng, mà em phải chọn lại, mới ra mã,
xem hình giúp em nhé,
 

File đính kèm

  • vlookup.jpg
    vlookup.jpg
    239.8 KB · Đọc: 733
Bạn ơi cho mình hỏi, mình dùng hàm vlookup để dò giá trị tương ứng trong sheet1 Cột A với Sheet 2 cột B nhưng bị lỗi phải nhấp đúp vô giá trị trong sheet1 cột A thì nó mới dò ra.

Các bạn xem giúp có cách nào khắc phục không ạ.

Mình gửi kèm file
 

File đính kèm

Mọi người chỉ em khách khắc phục lỗi #N/A trong Vlookup với,
Khi em copy và dán tên ( hàng hóa) vào cột E, thì Cột D không tự dò mà tương ứng, mà em phải chọn lại, mới ra mã,
xem hình giúp em nhé,
Bạn bẫy lỗi bằng cách lồng công thức vào trong hàm IFERROR, ví dụ =IFERROR(Vlookup( ... ),"Không tìm thấy")
Bài đã được tự động gộp:

Bạn ơi cho mình hỏi, mình dùng hàm vlookup để dò giá trị tương ứng trong sheet1 Cột A với Sheet 2 cột B nhưng bị lỗi phải nhấp đúp vô giá trị trong sheet1 cột A thì nó mới dò ra.

Các bạn xem giúp có cách nào khắc phục không ạ.

Mình gửi kèm file
Để bẫy lỗi #N/A thì bạn xem bài ở trên (sử dụng IFERROR bẫy lỗi).
Trường hợp không phải lỗi mà phải nhấp đúp vô giá trị trong sheet1 cột A thì nó mới dò ra thì có thể là do bạn để chế độ Excel tính toán thủ công, chuyển nó sang tự động: tab Formulas > Calculation Options > chọn Automatic.
 
Lần chỉnh sửa cuối:
Công ty mình có một số mã hàng đặt lại gần giống nhau như file đính kèm dưới đây. Khi mình đặt hàm vlookup để đối chiếu giữa các sheet thì hàm vlookup tìm ra nhầm kết quả. Những mã này mình không thay đổi được vì toàn công ty đều dùng mã này rồi. Vậy có giải pháp này cho trường hợp này không ạ. Có thể dùng hàm khác cũng được ạ.
(Kết quá của hàm vlookup ở ô D5 là sai đó ạ). Mình xin cám ơn ạ.
 

File đính kèm

Công ty mình có một số mã hàng đặt lại gần giống nhau như file đính kèm dưới đây. Khi mình đặt hàm vlookup để đối chiếu giữa các sheet thì hàm vlookup tìm ra nhầm kết quả. Những mã này mình không thay đổi được vì toàn công ty đều dùng mã này rồi. Vậy có giải pháp này cho trường hợp này không ạ. Có thể dùng hàm khác cũng được ạ.
(Kết quá của hàm vlookup ở ô D5 là sai đó ạ). Mình xin cám ơn ạ.
Mã:
D2=IF(RIGHT(B2,1)="*",SUMPRODUCT((LEFT($B$30:$B$48,LEN($B$30:$B$48)-1)=LEFT(B2,LEN(B2)-1))*(RIGHT($B$30:$B$48,1)="*")*$D$30:$D$48),VLOOKUP($B2,$B$30:$D$48,3,0))
 
XIN HỎI
table array có thể là hai mảng được không ạ. dúng hàm gì để ghép hai mảng với nhau?
VD
=VLOOKUP(G3,and('sheet 1'C$3:D$6,'sheet 2'C$3:D$6),2,1)
 
Chào các anh chị giúp đỡ em làm sao để đổi các giá trị ở ô B10:E11 từ số sang màu với ạ. Vì màu nó đổi theo ngày. Mà quy ước màu theo giá trị ở Hàng 1. Công thức ở B15:E16 sẽ là như thế nào ạ? Em cảm ơn!
Bài đã được tự động gộp:

Chào các anh chị giúp đỡ em làm sao để đổi các giá trị ở ô B10:E11 từ số sang màu với ạ. Vì màu nó đổi theo ngày. Mà quy ước màu theo giá trị ở Hàng 1. Công thức ở B15:E16 sẽ là như thế nào ạ? Em cảm ơn!
 

File đính kèm

  • Hlookup.xlsx
    Hlookup.xlsx
    8.8 KB · Đọc: 693
  • Screenshot_2020-04-27-20-51-24-14_87869c5c71fa0655e350912352595c23.png
    Screenshot_2020-04-27-20-51-24-14_87869c5c71fa0655e350912352595c23.png
    154.4 KB · Đọc: 507
Xin chào Anh/Chị/Em ạ

Em đang cần lấy cột tiền phụ cấp từ sheet phụ cấp sang bảng lương mà mày mò hoài không được ạ, Anh/Chị/Em hỗ trợ em với ạ, em có

- 1 cột phụ cấp (Bus và Phí visa) trong sheet lương
- 1 Cột là tăng ca trong sheet lương luôn ạ
- 1 Bảng phụ cấp bao gồm tất cả các loại phụ cấp, tăng ca

Giờ làm sao e làm công thức để lấy số tiền từ sheet phụ cấp sang 2 cột sheet lương ạ tương ứng ạ

Em có sử dụng hàm: IFERROR(VLOOKUP(cột mã nhân viên,bảng phụ cấp,lấy cột tiền,0),0) => kết quả 2 cột phụ cấp và tăng ca giống y chang nhau làm sao để e chèn điều kiện nếu cùng mã nhân viên mà ký hiệu phụ cấp là TC thì lấy tiền qua cột tăng ca ở bảng lương, còn nếu ký hiệu là BUS, VISA... thì lấy ở cột phụ cấp ạ

Em cảm ơn
 
Xin chào Anh/Chị/Em ạ
Em đang cần lấy cột tiền phụ cấp từ sheet phụ cấp sang bảng lương mà mày mò hoài không được ạ, Anh/Chị/Em hỗ trợ em với ạ, em có
- 1 cột phụ cấp (Bus và Phí visa) trong sheet lương
- 1 Cột là tăng ca trong sheet lương luôn ạ
- 1 Bảng phụ cấp bao gồm tất cả các loại phụ cấp, tăng ca
Giờ làm sao e làm công thức để lấy số tiền từ sheet phụ cấp sang 2 cột sheet lương ạ tương ứng ạ
Em có sử dụng hàm: IFERROR(VLOOKUP(cột mã nhân viên,bảng phụ cấp,lấy cột tiền,0),0) => kết quả 2 cột phụ cấp và tăng ca giống y chang nhau làm sao để e chèn điều kiện nếu cùng mã nhân viên mà ký hiệu phụ cấp là TC thì lấy tiền qua cột tăng ca ở bảng lương, còn nếu ký hiệu là BUS, VISA... thì lấy ở cột phụ cấp ạ
Em cảm ơn
Bạn gửi file lên xem sao, biết đâu có thành viên giúp được bạn.
 
Lấy từ cột nào (ví dụ cột A, cột B bên Sheet phụ cấp) sang cột nào bên sheet lương (ví dụ cột C, cột D...)
Bạn ghi cụ thể chứ bên sheet lương bạn nhiều cột phụ cấp quá, không biết đường nào mà lần bạn à.
Mình cần lấy cột G trong sheet phụ cấp sang cột O và cột P trong sheet Lương T8 đó ạ,

Cột O thì lấy loại phụ cấp là BUS, VISA

Cột P lấy loại phụ cấp là TC

Tương ứng với mã nhân viên nha

Cảm ơn bạn nhiều
 
Mình cần lấy cột G trong sheet phụ cấp sang cột O và cột P trong sheet Lương T8 đó ạ,
Cột O thì lấy loại phụ cấp là BUS, VISA
Cột P lấy loại phụ cấp là TC
Tương ứng với mã nhân viên nha
Cảm ơn bạn nhiều
Bạn cho hỏi: Trong bảng phụ cấp có 1 mã nhân viên có 2 loại phụ cấp thì sheet sang bảng lương sẽ căn cứ vào đâu để biết được sẽ tham chiếu theo phụ cấp nào nhỉ.
VD: mã nhân viên:
LM.THUYEN-VP1 có cả loại phụ cấp BUS và TC
 
Bạn cho hỏi: Trong bảng phụ cấp có 1 mã nhân viên có 2 loại phụ cấp thì sheet sang bảng lương sẽ căn cứ vào đâu để biết được sẽ tham chiếu theo phụ cấp nào nhỉ.
VD: mã nhân viên:
LM.THUYEN-VP1 có cả loại phụ cấp BUS và TC
Mình dựa vào cột E loại phụ cấp trong sheet phụ cấp á bạn nếu mình làm công thức if(and(loại phụ cấp =" BUS",loại phụ cấp ="VISA"),cột tiền,if(loại phụ cấp ="PC",cột tiền,0)

Lồng với hàm iferror(vlookup để dò mã nữa nhưng không ra được như trong file á bạn
 
Mình dựa vào cột E loại phụ cấp trong sheet phụ cấp á bạn nếu mình làm công thức if(and(loại phụ cấp =" BUS",loại phụ cấp ="VISA"),cột tiền,if(loại phụ cấp ="PC",cột tiền,0)
Lồng với hàm iferror(vlookup để dò mã nữa nhưng không ra được như trong file á bạn
Bạn chưa hiểu rõ rồi, phải biết mã (LM.THUYEN-VP1 có cả loại phụ cấp BUS và TC) ở bên sheet lương là mức phụ cấp BUS hay TC để áp định mức cơ mà, hay là đoán thôi nhỉ.
 
Bạn chưa hiểu rõ rồi, phải biết mã (LM.THUYEN-VP1 có cả loại phụ cấp BUS và TC) ở bên sheet lương là mức phụ cấp BUS hay TC để áp định mức cơ mà, hay là đoán thôi nhỉ.
Ah bảng phụ cấp là tùy theo tháng á bạn tự nhập tay vô có tháng có phụ cấp, có tháng không có, có tháng chỉ có 1 loại có tháng có cả hai, tháng này n=mã LM.THUYEN-VP1 có 2 loại lun ý ạ, mình muốn để 2 loại đó ở 2 cột O và P bên bảng lương tương ứng á hiii
 
Ah bảng phụ cấp là tùy theo tháng á bạn tự nhập tay vô có tháng có phụ cấp, có tháng không có, có tháng chỉ có 1 loại có tháng có cả hai, tháng này n=mã LM.THUYEN-VP1 có 2 loại lun ý ạ, mình muốn để 2 loại đó ở 2 cột O và P bên bảng lương tương ứng á hiii
Theo cách bố trí của bạn thì mình chưa thực hiện được nên mình thay đổi lại một chút, bạn xem thử nhé.
 

File đính kèm

chào các bác
em mới học exel
các bác chỉ giúp em vấn đề này với
em có công thức này =VLOOKUP(G2,M:N,2,0) và công thức chỉ tìm kiếm cho 1 dữ lieu gần nhất vậy muốn cộng tổng lại cần thêm công thức nào ạ
thank các bác
 

File đính kèm

chào các bác
em mới học exel
các bác chỉ giúp em vấn đề này với
em có công thức này =VLOOKUP(G2,M:N,2,0) và công thức chỉ tìm kiếm cho 1 dữ lieu gần nhất vậy muốn cộng tổng lại cần thêm công thức nào ạ
thank các bác
Tính tổng có điều kiện là dùng sumif chứ không phải vlookup, hơn nữa lần sau bạn nên tạo chủ đề mới. =SUMIF($M$2:$M$5;G2;$N$2:$N$5)
 
chào các bác
em mới học exel
các bác chỉ giúp em vấn đề này với
em có công thức này =VLOOKUP(G2,M:N,2,0) và công thức chỉ tìm kiếm cho 1 dữ lieu gần nhất vậy muốn cộng tổng lại cần thêm công thức nào ạ
thank các bác
Bạn thêm vài chục dòng dữ liệu và điền kết quả mong muốn bằng tay xem thế nào đã nhé.
 
Nhìn dạng thì người hỏi thừa kế cái file của người đi trước.
Loại bài này còn hỏi tới hỏi lui vài lượt nữa. Đề nghị chủ thớt (mót) dời nó sang thành thớt riêng.
 
Nhìn dạng thì người hỏi thừa kế cái file của người đi trước.
Loại bài này còn hỏi tới hỏi lui vài lượt nữa. Đề nghị chủ thớt (mót) dời nó sang thành thớt riêng.
đâu em mới học mà tất cả cái file đó là em làm đấy.em cũng tự tạo 1 chút macro tự xóa.mỗi cái là em k biết áp dung công thức mấy
Bài đã được tự động gộp:

Tính tổng có điều kiện là dùng sumif chứ không phải vlookup, hơn nữa lần sau bạn nên tạo chủ đề mới. =SUMIF($M$2:$M$5;G2;$N$2:$N$5)
bạn xem hộ mình file này. mình so sánh nhưng chỉ báo 1 kết quả. mà trong khu tìm kiếm có 3-4 kết quả.có thể cộng dồn lại được không.
thank bạn thông cảm mình hơi ngu công thức.
 

File đính kèm

Lần chỉnh sửa cuối:
đâu em mới học mà tất cả cái file đó là em làm đấy.em cũng tự tạo 1 chút macro tự xóa.mỗi cái là em k biết áp dung công thức mấy
Bài đã được tự động gộp:


bạn xem hộ mình file này. mình so sánh nhưng chỉ báo 1 kết quả. mà trong khu tìm kiếm có 3-4 kết quả.có thể cộng dồn lại được không.
thank bạn thông cảm mình hơi ngu công thức.
Mình trả lời bạn một lần này nữa thôi còn nếu muốn hỏi gì tạo bài khác không nên chèn chủ đề khác vào trong bài của người khác
 

File đính kèm

Mã:
=VLOOKUP(G7,$K$6:$L$11,2,1)
Bạn thử thay số 0 sau cùng thành số 1 như thế này sẽ hiểu
Thay số 1 thì nó ra kết quả nhưng ko chính xác bác à, lúc đó H7 đúng bằng 1 nhưng H8 sai (=3). Có điều lạ là khi mở ở chế độ Protect View thì kết quả tất cả đêu đúng. (Hoặc mở trên trang tính của điện thoại Android thì bình thường.
 
Thay số 1 thì nó ra kết quả nhưng ko chính xác bác à, lúc đó H7 đúng bằng 1 nhưng H8 sai (=3). Có điều lạ là khi mở ở chế độ Protect View thì kết quả tất cả đêu đúng. (Hoặc mở trên trang tính của điện thoại Android thì bình thường.
Bảng tính không thể nói chuyện chế độ, điện thoại hay máy tính gì cả. Công thức đúng thì phải ra đúng kết quả.
Chỉ là bạn không biết số 1 và 0 khác nhau ra sao thôi?
 
VLOOKUP

Hàm VLOOKUP sẽ dò tìm một hàng (Row) chứa giá trị mà bạn cần tìm ở cột đầu tiên (bên trái) của một bảng dữ liệu (chữ V trong VLOOKUP có nghĩa là Vertical), nếu tìm thấy, nó sẽ tìm tiếp trong hàng này, và sẽ lấy giá trị ở cột mà bạn đã chỉ định trước.

Cú pháp: =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

lookup_value
: Giá trị dùng để tìm kiếm trong cột đầu tiên của table_array, giá trị này có thể là một số, một chuỗi, hoặc là một tham chiếu

table_array: Bảng dùng để dò tìm, có thể là một vùng tham chiếu hoặc là tên (Name) của một vùng đã được đặt tên

col_index_num: Số thứ tự của các cột trong table_array, chứa kết quả mà bạn muốn tìm kiếm. col_index_num: Số thứ tự này được tính từ trái sang phải (cột chứa lookup_value là cột thứ nhất)

range_lookup: Là một giá trị kiểu Boolean, để chỉ kiểu tìm kiếm: chính xác hay tương đối.
• TRUE (hoặc 1 là mặc định): Là kiểu dò tìm tương đối VLOOKUP sẽ tìm giá trị lookup_value đầu tiên mà nó tìm được trong cột đầu tiên của table_array. Trong trường hợp không tìm ra, nó sẽ trả về giá trị lớn nhất mà nhỏ hơn lookup_value
• FALSE (hoặc 0): Là kiểu dò tìm chính xác VLOOKUP sẽ tìm chính xác giá trị lookup_value trong cột đầu tiên của table_array. Trong trường hợp không có, hoặc lookup_value nhỏ hơn giá trị nhỏ nhất trong cột đầu tiên của table_array, nó sẽ báo lỗi #N/A!

Lưu ý:
• Để có kết quả chính xác khi range_lookup = TRUE, bạn phải sắp xếp các giá trị các giá trị trong cột đầu tiên của table_array từ nhỏ đến lớn.
• Nếu cột đầu tiên của table_array chứa các giá trị kiểu Text, bạn có thể dùng các ký tự đại diện cho lookup_value (dấu * đại diện cho nhiều ký tự / hoặc dấu ? đại diện cho một ký tự)
• Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong cột đầu tiên của table_array, hàm sẽ báo lỗi #N/A!
• Lỗi này thường gặp khi bạn gõ dư một khoảng trắng ở cuối lookup_value
• Nếu không tìm thấy lookup_value khi range_lookup = FALSE, hàm sẽ báo lỗi #N/A!
• Nếu col_index_num nhỏ hơn 1, hàm sẽ báo lỗi #VALUE!, còn nếu col_index_num lớn hơn số cột trong table_array, hàm sẽ báo lỗi #REF!

Ví dụ:
View attachment 228782
Sao không hướng dẫn đổi số thứ tự cột sang hàm động để dễ xử lý khi dò tìm nhiều cột, chứ thay đổi thủ công sẽ mất thời gian sau này khi muốn thay đổi cột cần lấy kết quả,
 
Sao không hướng dẫn đổi số thứ tự cột sang hàm động để dễ xử lý khi dò tìm nhiều cột, chứ thay đổi thủ công sẽ mất thời gian sau này khi muốn thay đổi cột cần lấy kết quả,
Bạn nhìn sai vấn đề rồi. VLookup chủ yếu là tĩnh. Cái đối số thứ hai của nó, "table_array", chủ yếu là một bảng tĩnh.
Việc đối số hứ ba, "col_index_num" cần uyển chuyển hay không nằm trong thủ thuật cải tiến.

Nếu cần công thức có nhiều tính chất động thì nên dùng cách khác tốt hơn Lookup, Index/Match, ... Đặc biệt Offset thì rất động.
 
Bảng tính không thể nói chuyện chế độ, điện thoại hay máy tính gì cả. Công thức đúng thì phải ra đúng kết quả.
Chỉ là bạn không biết số 1 và 0 khác nhau ra sao thôi?
Em chỉ hiểu là 0 phải tìm đúng giá trị, mà so sánh thì bên table_array vẫn có giá trị đúng để so sánh. Ảnh chụp khi em mở file trên điện thoại đây ạ. Và nếu có thể bác sửa giúp em để không báo lỗi được ko ạ?
 

File đính kèm

  • _20201202_105527.JPG
    _20201202_105527.JPG
    55.2 KB · Đọc: 388
Em chỉ hiểu là 0 phải tìm đúng giá trị, mà so sánh thì bên table_array vẫn có giá trị đúng để so sánh. ...
"phải tìm đúng giá trị" chỉ là 1/2 của cái khác giữa 0 và 1. Điểm khác còn lại quan trọng hơn. Và đó là lý da tại sao bạn bị sai.
Chú: nếu không hiểu rõ điều kiện của 1 thì luôn luôn dùng 0. Đừng bao giờ dùng 1, vì kết quả sẽ sai.
 
Tuy nhiên tôi đổ lỗi cho hàm MROUND. Nhớ mang máng có đọc ở đâu đấy về vấn đề với hàm này.
Tôi cũng nghi vì nếu nhậ̣p tay, hoặc trong trường hợp cụ̣ thể này thì dùng ROUND, thì kết quả đúng.
(... Bác có rảnh thì tìm thử)
"Cái này" không phải đam mê, cũng không phải công việc, nên tôi không ham. :D
 
Em có file này, 2 giá trị giống hệt nhau nhưng tìm lại không ra, nhờ mọi người giúp đỡ
 

File đính kèm

Em có file này, 2 giá trị giống hệt nhau nhưng tìm lại không ra, nhờ mọi người giúp đỡ
A1 và D1 không như nhau. A1 chứa ký tự unicode dựng sẵn (Len(A1) = 18), còn D1 chứa ký tự unicode tổ hợp (Len(D1) = 19)..

1.
Nhìn hình

excel.jpg


sẽ thấy "ả" trong A1 là ký tự unicode dựng sẵn có điểm mã là 7843 (thập phân) = 1EA3 (hex). Ký tự đó có tên là Latin Small Letter A with Hook Above

kytuahoi.jpg


"ả" trong D1 là tổ hợp - sự ghép 2 ký tự unicode: ký tự "a" (có tên là Latin Small Letter A) có điểm mã là 97 (thập phân) = 0061 (hex) và ký tự dấu hỏi (có tên là Combining Hook Above) có điểm mã là 777 (thập phân) = 0309 (hex)

kytua.jpg

dau hoi.jpg


2. Hãy copy A1 và dán vào D1 (lúc này A1 và D1 y hệt như nhau) thì sẽ thấy D2 có kết quả đẹp.
 
A1 và D1 không như nhau. A1 chứa ký tự unicode dựng sẵn (Len(A1) = 18), còn D1 chứa ký tự unicode tổ hợp (Len(D1) = 19)..

1.
Nhìn hình

View attachment 252947

sẽ thấy "ả" trong A1 là ký tự unicode dựng sẵn có điểm mã là 7843 (thập phân) = 1EA3 (hex). Ký tự đó có tên là Latin Small Letter A with Hook Above

View attachment 252944

"ả" trong D1 là tổ hợp - sự ghép 2 ký tự unicode: ký tự "a" (có tên là Latin Small Letter A) có điểm mã là 97 (thập phân) = 0061 (hex) và ký tự dấu hỏi (có tên là Combining Hook Above) có điểm mã là 777 (thập phân) = 0309 (hex)

View attachment 252945
View attachment 252946

2. Hãy copy A1 và dán vào D1 (lúc này A1 và D1 y hệt như nhau) thì sẽ thấy D2 có kết quả đẹp.
Với trường hợp này thì lỗi xuất phát từ đâu và xử lý sao cho nhanh anh nhỉ, chứ copy từng giá trị thì quá lâu. Mà cho em hỏi là em có dùng hàm If để so sánh 2 ô này và nó cho giá trị bằng nhau, vậy nhờ anh giải thích rõ hơn về cách hoạt động của hàm if trong trường hợp này./
 
Với trường hợp này thì lỗi xuất phát từ đâu và xử lý sao cho nhanh anh nhỉ, chứ copy từng giá trị thì quá lâu. Mà cho em hỏi là em có dùng hàm If để so sánh 2 ô này và nó cho giá trị bằng nhau, vậy nhờ anh giải thích rõ hơn về cách hoạt động của hàm if trong trường hợp này./
Tôi ghi rõ nguyên nhân

A1 và D1 không như nhau
...
2. Hãy copy A1 và dán vào D1 (lúc này A1 và D1 y hệt như nhau) thì sẽ thấy D2 có kết quả đẹp.

mà bạn còn hỏi cách khắc phục sao? Chịu khó suy nghĩ chút là ra thôi.

Nguyên nhân 2 chuỗi khác nhau dù mắt và IF "nhìn" như nhau là do 1 chuỗi chứa unicode dựng sẵn còn chuỗi kia chứa unicode tổ hợp. Độ lớn của chúng cũng khác nhau - một chuỗi 18 ký tự còn chuỗi kia có 19 ký tự. Vậy thì cách chữa là đưa chúng cùng về dựng sẵn hoặc cùng về tổ hợp. Thế thôi.

Cách chữa:
1. Đưa về cùng 1 loại unicode. Tôi đề nghị đưa về unicode dựng sẵn. Hãy dùng các công cụ sẵn có, có thể là Unikey (???), để chuyển dữ liệu nguồn (những chỗ như A1) về unicode dựng sẵn.

2. Ở những chỗ như D1 phải gõ unicode DỰNG SẴN. Nếu dùng Unikey thì phải chọn Bảng mã = Unicode (tức dựng sẵn), không chọn Bảng mã = Unicode tổ hợp (tức tổ hợp). Khi dữ liệu nguồn và dữ liệu cần kiểm tra cùng loại thì sẽ không có lỗi.

unikey.jpg
 
Lần chỉnh sửa cuối:
Tôi ghi rõ nguyên nhân



mà bạn còn hỏi cách khắc phục sao? Chịu khó suy nghĩ chút là ra thôi.

Nguyên nhân 2 chuỗi khác nhau dù mắt và IF "nhìn" như nhau là do 1 chuỗi chứa unicode dựng sẵn còn chuỗi kia chứa unicode tổ hợp. Độ lớn của chúng cũng khác nhau - một chuỗi 18 ký tự còn chuỗi kia có 19 ký tự. Vậy thì cách chữa là đưa chúng cùng về dựng sẵn hoặc cùng về tổ hợp. Thế thôi.

Cách chữa:
1. Đưa về cùng 1 loại unicode. Tôi đề nghị đưa về unicode dựng sẵn. Hãy dùng các công cụ sẵn có, có thể là Unikey (???), để chuyển dữ liệu nguồn (những chỗ như A1) về unicode dựng sẵn.

2. Ở những chỗ như D1 phải gõ unicode DỰNG SẴN. Nếu dùng Unikey thì phải chọn Bảng mã = Unicode (tức dựng sẵn), không chọn Bảng mã = Unicode tổ hợp (tức tổ hợp). Khi dữ liệu nguồn và dữ liệu cần kiểm tra cùng loại thì sẽ không có lỗi.

View attachment 253026
Em đã giải quyết được với Unikey toolkit như anh hướng dẫn, để Bảng mã nguồn và đích đều là Unicode, nếu nguồn là Unicode tổ hợp sẽ chuyển về Unicode dựng sẵn.
 

File đính kèm

  • Capture.JPG
    Capture.JPG
    34.3 KB · Đọc: 360
Chào mọi người.
Tôi không rành về exel nên xin phép trình bày hơi dài dòng một chút. Nhóm tôi làm việc phỏng vấn bằng đt. Để giảm chi phí (tận dụng miễn phí cuộc gọi nội mạng), chúng tôi muốn từ một danh sách tổng thể tách ra thành 3 danh sách dựa trên đầu số điện thoại của ba nhà mạng Viettel, Vina, Mobi. Nếu dùng hàm Vlookup thì cách làm (từng bước) như thế nào? Ai biết xin chỉ giúp.
Tôi xin chân thành cảm ơn.
 
Lần chỉnh sửa cuối:
Chào mọi người.
Tôi không rành về exel nên xin phép trình bày hơi dài dòng một chút. Nhóm tôi làm việc phỏng vấn bằng đt. Để giảm chi phí (tận dụng miễn phí cuộc gọi nội mạng), chúng tôi muốn từ một danh sách tổng thể tách ra thành 3 danh sách dựa trên đầu số điện thoại của ba nhà mạng Viettel, Vina, Mobi. Nếu dùng hàm Vlookup thì cách làm (từng bước) như thế nào? Ai biết xin chỉ giúp.
Tôi xin chân thành cảm ơn.
Bước 1. bạn xác định 3 số đầu của mỗi nhà mạng, cái này cũng hên xui vì một số đã đổi mạng giữ số rồi.
Bước 2. lập một bảng phụ gồm 3 dòng và 2 cột kiểu như cột A là 3 số đầu, cột B là Mạng điện thoại
Bước 3. bạn Vlookup 3 số đầu trong dãy số kia, tham chiếu đến cái bảng phụ vừa rồi là ra.
 
Bước 1. bạn xác định 3 số đầu của mỗi nhà mạng, cái này cũng hên xui vì một số đã đổi mạng giữ số rồi.
Bước 2. lập một bảng phụ gồm 3 dòng và 2 cột kiểu như cột A là 3 số đầu, cột B là Mạng điện thoại
Bước 3. bạn Vlookup 3 số đầu trong dãy số kia, tham chiếu đến cái bảng phụ vừa rồi là ra.
Cảm ơn bạn đã hướng dẫn chi tiết.
 
Xin cho hỏi,
Mình muốn tìm dữ liệu trùng nhau giữa 2 sheet, nên dùng vlookup mà bị thông báo như này.
Làm sao để mình tìm được những dữ liệu trùng nhau giữa 2 sheet ạ?
1634712352421.png
 
Cho e hỏi, e có sd hàm vlookup để lấy dữ liệu giữa 2 sheet, rõ ràng bên sheet kia có dữ liệu nhưng bên sheet này nó cứ báo lỗi. Ac nào cho e hỏi nó bị lỗi ở đâu v ạ?
e cám ơn
 

File đính kèm

DÙng trim là xong bao nó ngoài bảng hoặc
Screenshot (157).png
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom