Hàm Lookup và Hàm Vlookup cho kết quả tìm kiếm khác nhau (1 người xem)

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

KhanhChi29

Thành viên chính thức
Tham gia
27/9/14
Bài viết
92
Được thích
22
Nghề nghiệp
Giáo Viên
Tôi sử dụng hàm tìm kiếm Vlookup cho kết quả Bị nỗi #N/a
Khi sử dụng hàm Lookup thì kết quả không bị Lỗi
Tôi muốn hỏi mọi người tại sao kết quả của ô:
E8; E9; F8;F9 kết quả khác nhau
Dữ liệu cột A và cột B Khác nhau ở chỗ nào
 

File đính kèm

Tôi sử dụng hàm tìm kiếm Vlookup cho kết quả Bị nỗi #N/a
Khi sử dụng hàm Lookup thì kết quả không bị Lỗi
Tôi muốn hỏi mọi người tại sao kết quả của ô:
E8; E9; F8;F9 kết quả khác nhau
Dữ liệu cột A và cột B Khác nhau ở chỗ nào

Thực chất cell A9 không bằng 0.7 (cái này kiểm tra trong VBA sẽ biết có 1 sai số vô cùng nhỏ). Còn bên ngoài bảng tính, bạn có thể thí nghiệm bằng cách:
- Copy A9 paste vào B9 rồi xem kết quả
Hoặc
- Copy B9 paste vào A9 rồi xem kết quả
 
Thực chất cell A9 không bằng 0.7 (cái này kiểm tra trong VBA sẽ biết có 1 sai số vô cùng nhỏ). Còn bên ngoài bảng tính, bạn có thể thí nghiệm bằng cách:
- Copy A9 paste vào B9 rồi xem kết quả
Hoặc
- Copy B9 paste vào A9 rồi xem kết quả
Vâng em có nghi ngờ giá trị ở cột A và Cột B là khác nhau vô cùng bé nhưng lạ là so sánh trên bảng tính cột A=B thì kết quả vẫn là True
Sử dụng Lookup thì vẫn cho kết quả cần tìm đúng
Và càng Lạ hơn là em càng học lại càng ngu ra thầy ạ
Giá trị ở Ô A3 bắt đầu là 1
Giá trị ở Ô A4 là A3-0,05
Sao chép công thức xuống cho toàn bộ Cột A
Không hiểu tại sao công thức trừ kia lại phát sinh ra số vô cùng nhỏ thầy ạ
Thầy Up Code VBA cho em thử xem với
 

File đính kèm

Lần chỉnh sửa cuối:
Giá trị ở Ô A3 bắt đầu là 1
Giá trị ở Ô A4 là A3-0,05
Sao chép công thức xuống cho toàn bộ Cột A
Không hiểu tại sao công thức trừ kia lại phát sinh ra số vô cùng nhỏ thầy ạ

Cái này nói nhiều trên diễn đàn rồi. Tóm lại bạn chỉ cần biết rằng: Anh Bill tính toán hổng giống mình tính. Cộng trừ nhân chia với mấy số thập phân thì thế nào cũng có lúc ra kết quả không đúng ý ta muốn.
Trong một số trường hợp, để chắc ăn ta có thể dùng thêm hàm ROUND vào. Ví dụ:
Mã:
=ROUND(A3-0.05,2)
Tức là: chủ động làm tròn (đừng hy vọng anh Bill sẽ làm tròn như ý mình).


Và càng Lạ hơn là em càng học lại càng ngu ra thầy ạ
Vậy là tín hiệu tốt đó
 
Dữ liệu của cột A bạn bị tình trạng ép kiểu. Hình như do một con tính nào đó, hay do được copy từ đâu đó vào. Vì thế, nó có chứa một sai số rất nhỏ nào đó mà bảng tính không hiển hiện ra cho bạn.
Vlookup được bảng tính trao cho địa chỉ vùng dữ liệu chứ không phải dữ liệu cho nên nó dùng dữ liệu nguyên thuỷ mà nó đọc được.
Khi bạn vào ô và go F2, dữ liệu ô này được Excel chuẩn trở lại đúng kiểu.

Hình như bạn có hỏi câu "cần biết để đề phòng sau này".
Như bài #4 đã nói, nếu dữ liệu không phải do bạn gõ vào thì:
1. Nếu dữ liệu là số nguyên thì trong hầu hết các trường hợp, chả sao cả
2. Nếu dữ liệu là số thực thì nên tự chủ động làm tròn. Hoặc dùng phép so sánh có dung sai: hai số được coi là bằng nhau khi chúng cách nhau một trị rất nhỏ ABS(a-b) < Epsilone
3. Nếu dữ liệu là text thì phải chuẩn hoá. Có nhiều cách chuẩn hoá, nói ra dài lắm, bạn tìm trên đây cũng có vài bài.
 

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

Back
Top Bottom