Cách sử dụng hàm VLOOKUP và sửa lỗi #N/A

Các bác ạ, khi em dùng công thức như này:

VLOOKUP(I10,DM!$E$3:$G$200,3,0)

trong trường hợp I10 = 0 (không có gì) thì nó trả về cho em một chữ N/A xấu xí, em mà in sổ ra thì chán lắm. Có cách nào để ô đó trắng không ạ?

Thanks các bác.
 
xungdanhanhhung nói:
Các bác ạ, khi em dùng công thức như này:

VLOOKUP(I10,DM!$E$3:$G$200,3,0)

trong trường hợp I10 = 0 (không có gì) thì nó trả về cho em một chữ N/A xấu xí, em mà in sổ ra thì chán lắm. Có cách nào để ô đó trắng không ạ?

Thanks các bác.

If(I10="","",VLOOKUP(I10,DM!$E$3:$G$200,3,0)) hoặc
If(I10=0,"",VLOOKUP(I10,DM!$E$3:$G$200,3,0))
 
Cảm ơn bác, em làm được rồi, cho em hỏi tiếp với.

Số là em đang xem một file kế toán bằng excel. Trong sheet Tổng hợp công nợ người bán nó có một ô: Tài khoản, có một mũi tên đi xuống sổ ra các tài khoản chi tiết của Phải trả người bán (VD: 331VT...), Column bên cạnh là một số (tác giả để màu trắng, phải đưa con trỏ vào cell mới biết). Em có hai điều théc méc:

1. Làm thế nào để có cái mũi tên ấy (nó đẹp quá, trông rất chuyên nghiệp).
2. Cái số được bôi trắng ấy có ý nghĩa gì thế ạ?

Thanks!
 
xungdanhanhhung nói:
Cảm ơn bác, em làm được rồi, cho em hỏi tiếp với.

Số là em đang xem một file kế toán bằng excel. Trong sheet Tổng hợp công nợ người bán nó có một ô: Tài khoản, có một mũi tên đi xuống sổ ra các tài khoản chi tiết của Phải trả người bán (VD: 331VT...), Column bên cạnh là một số (tác giả để màu trắng, phải đưa con trỏ vào cell mới biết). Em có hai điều théc méc:

1. Làm thế nào để có cái mũi tên ấy (nó đẹp quá, trông rất chuyên nghiệp).
2. Cái số được bôi trắng ấy có ý nghĩa gì thế ạ?

Thanks!
1. Để có cái mũi tên đó: bạn làm vậy nè"
Bước 1: lập ra 1 list theo hàng dọc các tài khỏan chi tiết phải trả cho người bán trong fiel excel mà bạn cần (thường thì cái này có sẵn trong file Exel kế toán của bạn đó),
Bước 2: đánh dấu khối cái list trên rồi vào Insert - Name - Define : đặt tên cho list đó (VD: tkphaitra) vào ô Name in workbooks
Bước 3: đến ô mà bạn muốn có số tài khoản trong list đã tạo: vào Data - Validation, nó sẽ hiện ra 1 bảng, bạn chọn Setting, trong đó Allow: chọn List, ô Source: ghi "=tkphaitra" = > ô sẽ hiện ra cái mũi tên mà bạn cần, đề các ô khác cũng được vậy bạn chỉ cần kéo xuống hoặc copy là ok
2. câu hỏi 2 mình không hiểu lắm, nó có thể là cái list tài khỏan mà người lập tạo ra rồi bôi trắng
 
Dear all,
-------
Mình muốn góp thêm một ý thế này:
NX1: Việc tính toán dữ liệu trên Excel chỉ là công cụ, cái cuối cùng mới là quan trọng - Báo cáo. Mà báo cáo thì thường phải in ra đưa cho sếp, chứ không thể cứ để thế mà ký, đóng dấu được.
NX2: Mục đích của VLOOKUP là tìm kiếm một giá trị theo điều kiện. Trong trường hợp không tìm thấy thì nó thông báo là "không tìm thấy" (#N/A). Như vậy thì không thể đổ "lỗi" này cho MS Excel là "ngu ngốc" được! Vấn đề là bạn muốn thể hiện kết quả này trên báo cáo hay không, nếu không thì MS Excel cũng cho phép bạn làm điều đó: Trong thẻ Sheet của Page Setup, thiết lập thông số cell errors as: giá trị muốn hiển thị, OK!
NX3: Nếu cảm thấy khó chịu, thì đành phải xử lý vậy. Nhưng khoan hãy động đến hàm IF() vì trong điều kiến của nó đã thực hiện tìm kiếm sau đó nếu tìm thấy thì lại... tìm kiếm nữa ---> không tối ưu. Hãy kiểm tra xem Excel tìm cái gì mà không thấy! Nếu có thể được có thể đưa giá trị này ngược lại bảng tìm kiếm được không, chẳng hạn "khác", "lẻ", "không quan tâm", "không tìm thấy"... Cuối cùng nếu không thể thì đành... "eo" (ELSE), IF vậy!
Còn về cái "mũi tên đẹp đẹp, trông rất chuyên nghiệp" xungdanhanhhung có thể sử dụng bửu bối Tìm kiếm của diễn đàn, từ khoá: "validation" thì hiểu ngay!
"Column bên cạnh là một số (tác giả để màu trắng, phải đưa con trỏ vào cell mới biết)." có thể là một cột phụ tác giả muốn "che đậy" những kẻ tò mò, nếu bạn ngại hỏi tác giả thì sử dụng chức năng "kiểm toán công thức" (Formula Auditing) để biết các tham chiếu liên quan đến nó!
Thân ái!:friend:
 
Dear Cường,

Mình muốn giải thích một chút:

1. Đúng là báo cáo mới là cái quan trọng nhất nhưng các bảng biểu cũng quan trọng không kém. Chúng ta cần phải in ra, ký cọt để lưu giữ nữa. Số liệu là quan trọng nhất nhưng hình thức cũng giúp đọc số liệu dễ hiểu hơn. Cùng là dân nhà kế chắc bạn cũng hiểu mình.

2. Mình cũng nói đùa thôi, mình bảo chữ N/A ngu ngốc thôi chứ chàng excel thì no vấn đề :jump:

3. Thứ 3 là cái chữ đúng là tác giả muốn ẩn đi, nhưng mình không hiểu.
Đó là cell J4
Trong cell I4 có công thức như sau: INDEX(DM!F96:F115,J4)
Trong đó DM!F96:F115 là danh sách công nợ phải trả.

Thanks bạn rất nhiều!
 
Bạn có thể điều khiển những lỗi này của hàm Vlookup, Hlookup bằng các hàm thông tin Iserror(), IsNA()

= If(ISNA(vlookup()),"không tìm thấy", "Giá trị tìm thấy: " & Vlookup())
= If(ISERROR(vlookup()),"không tìm thấy", "Giá trị tìm thấy: " & Vlookup())
 
xungdanhanhhung nói:
Các bác ạ, khi em dùng công thức như này:

VLOOKUP(I10,DM!$E$3:$G$200,3,0)

trong trường hợp I10 = 0 (không có gì) thì nó trả về cho em một chữ N/A xấu xí, em mà in sổ ra thì chán lắm. Có cách nào để ô đó trắng không ạ?

Thanks các bác.
IF(ISNA(VLOOKUP(I10,DM!$E$3:$G$200,3,0)),0,VLOOKUP(I10,DM!$E$3:$G$200,3,0)).
Hàm ISNA SẼ Loại bỏ giá trị N/A Cho bạn.
 
Sửa lần cuối:
xungdanhanhhung nói:
Các bác ạ, khi em dùng công thức như này:

VLOOKUP(I10,DM!$E$3:$G$200,3,0)

trong trường hợp I10 = 0 (không có gì) thì nó trả về cho em một chữ N/A xấu xí, em mà in sổ ra thì chán lắm. Có cách nào để ô đó trắng không ạ?

Thanks các bác.


Bạn có thể bổ sung thêm hàm sau đây để chặn trường hợp N/A
= If(Isna(VLOOKUP(I10,DM!$E$3:$G$200,3,0)) = true,"",VLOOKUP(I10,DM!$E$3:$G$200,3,0))
Diễn giãi hàm:
Nếu bị lỗi N/A thì bỏ trống, ngược lại thì thực hiện lệnh Vlookup..
Ngoài ra, bạn có thể thay "" (khoãng trắng ) thành số 0
Chúc bạn thành công !
 
Mình đã áp dụng cách mới này, quả là rất hay. Cảm ơn mọi người!

To ForestC: đúng rồi anh ạ, nó chính là thứ tự ở trong list. Hôm nay bác rỗi rãi thế, hay chỉ online trưa thôi ạ? Thank u!
 
Bạn dùng thử công thức này cũng để khỏi có N/A:
Public Function MyVLookup(val As Variant, r As Range, c As Integer, flag As Boolean) As Variant
MyVLookup = Application.VLookup(val, r, c, flag)
If IsError(MyVLookup) Then MyVLookup = 0
End Function
 
Yeudoi nói:
Bạn dùng thử công thức này cũng để khỏi có N/A:
. . .
Hàm người dùng có nhanh không zậy?!
Như Bạn NgBình là được rồi; Nếu có muốn thêm nữa, thì dùng hàm =TYPE (....);
Theo mình không nên phức tạp hoá như IEUDOI làm gì; mà chỉ cần nói có 1 Fương án, zậy là đủ;
Đừng zận nha, IeuDoi!:friend:
 
Yeudoi nói:
Bạn dùng thử công thức này cũng để khỏi có N/A:
Public Function MyVLookup(val As Variant, r As Range, c As Integer, flag As Boolean) As Variant
MyVLookup = Application.VLookup(val, r, c, flag)
If IsError(MyVLookup) Then MyVLookup = 0
End Function
Với cách này không được đề xuất bởi bác Bill là do trường hợp trong việc dò tìm theo kiện ta tìm được số 0, nếu vậy làm sao phân biệt được số không tìm được và số không do tìm không được? :biggrin:
(nói nghe khó hiểu quá :wall: )
 
Yeudoi nói:
Bạn dùng thử công thức này cũng để khỏi có N/A:
Public Function MyVLookup(val As Variant, r As Range, c As Integer, flag As Boolean) As Variant
MyVLookup = Application.VLookup(val, r, c, flag)
If IsError(MyVLookup) Then MyVLookup = 0
End Function

Hoành tráng quá. Tuy nhiên trong trường hợp này ta nên dùng hàm đơn thuần có lẽ là thích hợp hơn.
 
Không phải là quá phức tạp ở đây tôi muốn đưa ra để xem như một phương pháp giải khác cho mọi người tham khảo thôi.
 
Dear all,
-------
Mình có ý kiến thêm có được không:
- Cứ cho đoạn mã của Yeudoi là một giải pháp đi, còn tính tối ưu thì còn phải xét trong trường hợp cụ thể. Bạn thử cho một ví dụ minh hoạ để thay hàm VLOOKUP trong bộ hàm tiêu chuẩn của MSE được không?
- Mình đoán là Yeudoi chưa lần nào ứng dụng cái "đứa con cưng" mà Yeudoi đề xuất, lý do: Theo mình đoán thì VlookUp trong VBA thực chất vẫn là VLOOKUP trong bộ hàm tiêu chuẩn. "Chúng" nằm trong một thư viện *.dll (excel.dll). Và do cho rằng các hàm (functions) của Excel - bất kỳ hàm nào mà các bạn sử dụng trên cell - thuộc Object WorksheetFunction. Chiếu theo ví dụ của bạn: Application.VlookUp là không đúng mà phải là Application.WorksheetFunction.VlookUp
- Nếu vẫn theo giải pháp của bạn thì có thể cải tiến hàm này chỉ cần một dòng lệnh, như thế nhìn "buồn cười" lắm!
 
Sửa lần cuối:
Các bác cho em hỏi ứng dụng của hàm Vlookup trong trường hơp này.
Em có 01 bảng Xuất - Nhập - Tồn hàng hóa Tháng 1(Sheet 1) trên Excel,
chuyển sang Sheet 2 (Tháng 2), em muốn dùng hàm Vlookup để chuyển số dư cuối kỳ Thang 1 sang đầu kỳ tháng 2 thì làm như thế nào ạ. (Em đã vận dụng công thức Vlookup nhưng không ra), mong các bác chỉ giáo, em cám ơn nhiều ạ.
 
Bạn nên nêu cụ thể công thức bạn làm hoặc gửi file lên thì mọi người giúp bạn dễ hơn. Thân mến.
 
Cayman nói:
Bạn nên nêu cụ thể công thức bạn làm hoặc gửi file lên thì mọi người giúp bạn dễ hơn. Thân mến.
Bảng Tổng hợp hàng Tồn Kho dư hàng hoá Sheet1
A B C D E F
STT Mặt Hàng Tồn ĐẦu Nhập trong kỳ Xuất trong kỳ Tồn cuối kỳ
4 MTH 200
5 MTD 700
6 HDK 890
7 NFE 680
8 EGH 780

Ví dụ Tháng 1 có số tồn cuối kỳ như trên, bây giờ sang Tháng 2, mở trong sheet 2.
1. Liệu chúng ta có thể dùng hàm Vlookup chuyển tên hàng hóa từ tháng 1 sang cột Mặt hàng ở tháng 2.
2. Dùng hàm Vlookup chuyển số dư cuối kỳ của tháng 1 sang tháng 2 ở cột tồn đầu kỳ của tháng 2, tương ứng với từng Mặt hàng.
Các bác chỉ bảo giúp em.
(Ghi chú: Các bác hiểu giúp em A, B, C, D,E, F là các cột tương ứng STT, Mặt Hàng, vvv, Tồn cuối kỳ), giả sử số tồn cuối của các mặt hàng là 200 - 780).
 
Sửa lần cuối:
Back
Top