Excel VLOOKUP không hoạt động - sửa lỗi #N/A và #VALUE

  • Chia Sẻ Cái Này
Michael Brown

Mục lục

VLOOKUP của bạn đang lấy dữ liệu sai hoặc bạn hoàn toàn không thể làm cho nó hoạt động? Hướng dẫn này cho biết cách bạn có thể nhanh chóng khắc phục các lỗi VLOOKUP phổ biến và khắc phục các hạn chế chính của nó.

Trong một vài bài viết trước, chúng ta đã khám phá các khía cạnh khác nhau của hàm VLOOKUP trong Excel. Nếu bạn đã theo dõi sát sao chúng tôi, thì giờ đây bạn hẳn đã là một chuyên gia trong lĩnh vực này rồi đấy :)

Tuy nhiên, không phải vô cớ mà nhiều chuyên gia Excel coi VLOOKUP là một trong những hàm phức tạp nhất của Excel. Nó có rất nhiều hạn chế, là nguồn gốc của nhiều vấn đề và lỗi khác nhau.

Trong bài viết này, bạn sẽ tìm thấy những lời giải thích đơn giản về nguyên nhân chính gây ra lỗi VLOOKUP, chẳng hạn như #N/A, #NAME và #VALUE, cũng như các giải pháp và bản sửa lỗi của chúng. Chúng tôi sẽ bắt đầu với những lý do rõ ràng nhất khiến VLOOKUP không hoạt động, vì vậy, bạn nên kiểm tra các bước khắc phục sự cố bên dưới theo thứ tự.

    Sửa lỗi #N/A trong VLOOKUP

    Trong công thức VLOOKUP, thông báo lỗi #N/A (có nghĩa là "không khả dụng") được hiển thị khi Excel không thể tìm thấy giá trị tra cứu. Có thể có một số lý do khiến điều đó xảy ra.

    1. Giá trị tra cứu bị sai chính tả

    Bạn nên kiểm tra điều rõ ràng nhất trước tiên luôn là một ý tưởng hay :) Lỗi in sai thường xảy ra khi bạn đang làm việc với các tập dữ liệu thực sự lớn bao gồm hàng nghìn hàng hoặc khi nhập một giá trị tra cứu trực tiếp trong công thức.

    2.VLOOKUP không thể chọn một mảng bảng trong một trang tính khác (tức là khi bạn tô sáng một dải ô trong trang tính tra cứu, không có gì xuất hiện trong đối số table_array trong công thức hoặc trong hộp tương ứng của công thức thuật sĩ), thì rất có thể hai trang tính đang mở trong các phiên bản Excel riêng biệt và không thể giao tiếp với nhau. Để biết thêm thông tin, vui lòng xem Cách xác định tệp Excel nào thuộc phiên bản nào. Để khắc phục điều này, chỉ cần đóng tất cả các cửa sổ Excel, sau đó mở lại các trang tính/sổ làm việc trong cùng một trường hợp (hành vi mặc định).

    Cách Vlookup không có lỗi trong Excel

    Nếu bạn không muốn đe dọa người dùng của mình bằng các ký hiệu lỗi tiêu chuẩn của Excel, thay vào đó, bạn có thể hiển thị văn bản thân thiện với người dùng của riêng mình hoặc trả về một ô trống nếu không tìm thấy gì. Điều này có thể được thực hiện bằng cách sử dụng hàm VLOOKUP với hàm IFERROR hoặc IFNA.

    Bắt tất cả lỗi

    Trong Excel 2007 trở lên, bạn có thể sử dụng hàm IFERROR để kiểm tra lỗi trong công thức VLOOKUP và trả về kết quả của bạn. văn bản riêng (hoặc một chuỗi trống) nếu bất kỳ lỗi nào được phát hiện.

    Ví dụ:

    =IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, something went wrong")

    Trong Excel 2003 trở về trước, bạn có thể sử dụng công thức IF ISERROR cho mục đích tương tự:

    =IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, something went wrong", VLOOKUP(E1, A2:B10, 2, FALSE))

    Để biết thêm chi tiết, vui lòng xem Sử dụng IFERROR với VLOOKUP trong Excel.

    Xử lý lỗi #N/A

    Để chỉ bẫy lỗi #N/A bỏ qua tất cả các loại lỗi khác, hãy sử dụng hàm IFNA (trong Excel 2013 vàcao hơn) hoặc công thức IF ISNA (trong tất cả các phiên bản).

    Ví dụ:

    =IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, no match is found. Please try again!")

    =IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, no match is found. Please try again!", VLOOKUP(E1, A2:B10, 2, FALSE))

    Đó là tất cả cho ngày hôm nay. Hy vọng rằng hướng dẫn này sẽ giúp bạn loại bỏ các lỗi VLOOKUP và có các công thức hoạt động theo cách bạn muốn.

    Cách VLOOKUP trong Excel - video hướng dẫn

    #N/A trong kết quả khớp gần đúng VLOOKUP

    Nếu công thức của bạn tra cứu kết quả khớp gần nhất, (đối số range_lookup được đặt thành TRUE hoặc bị bỏ qua), lỗi #N/A có thể xuất hiện trong hai trường hợp :

    • Giá trị tra cứu nhỏ hơn giá trị nhỏ nhất trong mảng tra cứu.
    • Cột tra cứu không được sắp xếp theo thứ tự tăng dần.

    3 . #N/A khớp chính xác VLOOKUP

    Nếu bạn đang tìm kiếm khớp chính xác (đối số range_lookup được đặt thành FALSE), lỗi #N/A xảy ra khi một giá trị chính xác bằng với giá trị tra cứu giá trị không được tìm thấy. Để biết thêm thông tin, hãy xem đối sánh chính xác của VLOOKUP so với đối sánh gần đúng.

    4. Cột tra cứu không phải là cột ngoài cùng bên trái của mảng bảng

    Một trong những hạn chế quan trọng nhất của Excel VLOOKUP là nó không thể nhìn sang bên trái. Do đó, cột tra cứu phải luôn là cột ngoài cùng bên trái trong mảng bảng. Trên thực tế, chúng ta thường quên điều này và kết thúc với lỗi #N/A.

    Giải pháp : Nếu không thể cơ cấu lại dữ liệu của bạn để cột tra cứu là cột ngoài cùng bên trái, bạn có thể sử dụng đồng thời các hàm INDEX và MATCH như một giải pháp thay thế cho VLOOKUP. Đây là ví dụ về công thức: Công thức INDEX MATCH để tra cứu các giá trị sang trái.

    5. Các số được định dạng dưới dạng văn bản

    Một lỗi #N/A phổ biến khác trong công thức VLOOKUP là các số được định dạng dưới dạng văn bản, trong bảng chính hoặc bảng tra cứu.

    Điều này thường xảy raxảy ra khi bạn nhập dữ liệu từ một số cơ sở dữ liệu bên ngoài hoặc nếu bạn đã nhập dấu nháy đơn trước một số để hiển thị các số 0 đứng đầu.

    Dưới đây là các chỉ báo rõ ràng nhất về các số được định dạng dưới dạng văn bản:

    Giải pháp: Chọn tất cả các số có vấn đề, nhấp vào biểu tượng lỗi và chọn Chuyển sang Số từ menu ngữ cảnh. Để biết thêm thông tin, vui lòng xem Cách chuyển đổi văn bản thành số trong Excel.

    6. Khoảng trắng ở đầu hoặc ở cuối

    Đây là nguyên nhân ít rõ ràng nhất gây ra lỗi VLOOKUP #N/A vì mắt người khó có thể phát hiện ra những khoảng trắng thừa đó, đặc biệt là khi làm việc với các tập dữ liệu lớn trong đó hầu hết các mục nhập nằm bên dưới cuộn .

    Giải pháp 1: Thêm khoảng trắng trong giá trị tra cứu

    Để đảm bảo công thức VLOOKUP hoạt động chính xác, hãy bọc giá trị tra cứu trong hàm TRIM:

    =VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)

    Giải pháp 2: Dấu cách thừa trong cột tra cứu

    Nếu xuất hiện dấu cách thừa trong cột tra cứu thì sẽ có không phải là cách dễ dàng để tránh lỗi #N/A trong VLOOKUP. Thay vào đó, bạn có thể sử dụng kết hợp các hàm INDEX, MATCH và TRIM dưới dạng công thức mảng:

    =INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))

    Vì đây là công thức mảng nên đừng quên nhấn Ctrl + Shift + Enter để hoàn thành nó đúng cách (trong Excel 365 và Excel 2021 khi mảng là gốc, điều này cũng hoạt động như một công thức thông thường).

    Mẹo. Một giải pháp thay thế nhanh chóng là chạy công cụ Trim Spaces sẽ loại bỏkhoảng trống thừa cả trong bảng tra cứu và bảng chính trong vài giây, giúp công thức VLOOKUP của bạn không bị lỗi.

    #VALUE! lỗi trong công thức VLOOKUP

    Nói chung, Microsoft Excel hiển thị lỗi #VALUE! lỗi nếu một giá trị được sử dụng trong công thức có kiểu dữ liệu sai. Đối với VLOOKUP, có hai nguồn phổ biến của GIÁ TRỊ! lỗi.

    1. Giá trị tra cứu vượt quá 255 ký tự

    Xin lưu ý rằng VLOOKUP không thể tra cứu các giá trị chứa hơn 255 ký tự. Nếu giá trị tra cứu của bạn vượt quá giới hạn này, lỗi #VALUE! sẽ hiển thị lỗi:

    Giải pháp : Thay vào đó, hãy sử dụng công thức INDEX MATCH. Trong trường hợp của chúng tôi, công thức này hoạt động hoàn hảo:

    =INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))

    2. Đường dẫn đầy đủ đến sổ làm việc tra cứu không được cung cấp

    Nếu bạn đang lấy dữ liệu từ một sổ làm việc khác, bạn phải bao gồm đường dẫn đầy đủ đến sổ làm việc đó. Chính xác hơn, bạn phải đặt tên của sổ làm việc bao gồm cả phần mở rộng trong [dấu ngoặc vuông] và chỉ định tên của trang tính theo sau là dấu chấm than. Nếu tên sổ làm việc hoặc tên trang tính hoặc cả hai chứa dấu cách hoặc bất kỳ ký tự nào không phải bảng chữ cái, thì đường dẫn phải được đặt trong dấu ngoặc kép đơn.

    Đây là cấu trúc của đối số table_array để Vlookup từ sổ làm việc khác:

    '[workbook name]sheet name'!range

    Một công thức thực có thể giống như sau:

    =VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)

    Công thức trên sẽ tìm kiếm giá trị của A2 trong cột B của Trang tính 1 trong MớiPrices workbook và trả về giá trị phù hợp từ cột D.

    Nếu thiếu bất kỳ thành phần nào của đường dẫn, công thức VLOOKUP của bạn sẽ không hoạt động và trả về lỗi #VALUE (trừ khi sổ làm việc tra cứu hiện đang open).

    Để biết thêm thông tin, vui lòng xem:

    • Cách tham chiếu đến một trang tính hoặc sổ làm việc khác trong Excel
    • Cách thực hiện Vlookup từ một sổ làm việc khác

    3. Đối số col_index_num nhỏ hơn 1

    Thật khó để hình dung một tình huống khi ai đó cố tình nhập một số nhỏ hơn 1 để chỉ định cột sẽ trả về giá trị. Nhưng nó có thể xảy ra nếu đối số này được trả về bởi một số hàm khác được lồng trong công thức VLOOKUP của bạn.

    Vì vậy, nếu đối số col_index_num lớn hơn 1, thì công thức của bạn sẽ trả về lỗi #VALUE! cũng bị lỗi.

    Nếu col_index_num lớn hơn số lượng cột trong mảng bảng, VLOOKUP sẽ tạo lỗi #REF! lỗi.

    Giải quyết lỗi VLOOKUP #NAME

    Đây là trường hợp dễ nhất - lỗi #NAME? lỗi xuất hiện nếu bạn vô tình viết sai tên hàm.

    Giải pháp rất rõ ràng - kiểm tra chính tả :)

    Các nguyên nhân chính gây ra lỗi trong Excel VLOOKUP

    Ngoài nguyên nhân Có một cú pháp khá phức tạp, VLOOKUP có nhiều hạn chế hơn bất kỳ hàm Excel nào khác. Vì những hạn chế này, một công thức có vẻ đúng thường có thể mang lại kết quả khác với những gì bạn mong đợi. Dưới đây bạn sẽ tìm thấygiải pháp cho một số trường hợp điển hình khi VLOOKUP không thành công.

    VLOOKUP không phân biệt chữ hoa chữ thường

    Hàm VLOOKUP không phân biệt chữ hoa chữ thường và coi các ký tự chữ thường và chữ hoa là giống hệt nhau.

    Giải pháp : Sử dụng VLOOKUP, XLOOKUP hoặc INDEX MATCH kết hợp với hàm EXACT có thể khớp với kiểu chữ. Bạn có thể tìm thấy các giải thích chi tiết và ví dụ về công thức trong hướng dẫn này: 5 cách để thực hiện Vlookup phân biệt chữ hoa chữ thường trong Excel.

    Một cột mới đã được chèn hoặc xóa khỏi bảng

    Rất tiếc, VLOOKUP các công thức ngừng hoạt động mỗi khi một cột mới bị xóa khỏi hoặc được thêm vào bảng tra cứu. Điều này xảy ra vì cú pháp của hàm VLOOKUP yêu cầu xác định số chỉ mục của cột trả về. Khi một cột mới được thêm vào/xóa khỏi mảng bảng, rõ ràng số chỉ mục đó sẽ thay đổi.

    Giải pháp : Công thức INDEX MATCH lại được giải cứu :) Với INDEX MATCH, bạn chỉ định phạm vi tra cứu và trả về riêng biệt, vì vậy, bạn có thể tự do xóa hoặc chèn bao nhiêu cột tùy thích mà không phải lo lắng về việc cập nhật mọi công thức được liên kết.

    Tham chiếu ô thay đổi khi sao chép công thức sang các ô khác

    Tiêu đề đưa ra lời giải thích thấu đáo về vấn đề, phải không?

    Giải pháp : Luôn sử dụng tham chiếu tuyệt đối (có ký hiệu $) cho đối số table_array , ví dụ: $A$2:$C$100 hoặc$A:$C. Bạn có thể nhanh chóng chuyển đổi giữa các loại tham chiếu khác nhau bằng cách nhấn phím F4.

    VLOOKUP trả về giá trị tìm thấy đầu tiên

    Như bạn đã biết, VLOOKUP trong Excel trả về giá trị đầu tiên tìm thấy. Tuy nhiên, bạn có thể buộc nó mang lại lần thứ 2, thứ 3, thứ 4 hoặc bất kỳ lần xuất hiện nào khác mà bạn muốn. Cũng có một cách để lấy kết quả khớp cuối cùng hoặc tất cả kết quả khớp đã tìm thấy.

    Giải pháp : Ví dụ về công thức có sẵn tại đây:

    • Vlookup và trả về lần xuất hiện thứ N
    • Vlookup nhiều giá trị
    • Công thức XLOOKUP để lấy giá trị khớp cuối cùng

    Tại sao VLOOKUP của tôi hoạt động cho một số ô mà không phải các ô khác?

    Khi bạn Công thức VLOOKUP trả về dữ liệu chính xác I một số ô và lỗi #N/A ở những ô khác, có thể có một số lý do khiến điều đó xảy ra.

    1. Mảng bảng không bị khóa

    Giả sử bạn có công thức này ở hàng 2 (giả sử ở E2), công thức này hoạt động tốt:

    =VLOOKUP(D2, A2:B10, 2, FALSE)

    Khi được sao chép sang hàng 3, công thức sẽ thay đổi thành:

    =VLOOKUP(D3, A3:B11, 2, FALSE)

    Vì tham chiếu tương đối được sử dụng cho table_array nên tham chiếu này thay đổi dựa trên vị trí tương đối của hàng nơi công thức được sao chép , trong trường hợp của chúng tôi là từ A2:B10 đến A3:B11. Vì vậy, nếu kết quả khớp ở hàng 2, nó sẽ không được tìm thấy!

    Giải pháp : Khi sử dụng công thức VLOOKUP cho nhiều ô, hãy luôn khóa mảng bảng tham chiếu có ký hiệu $ như $A$2:$B$10.

    2. Giá trị văn bản hoặc loại dữ liệu không khớp

    KhácLý do phổ biến khiến VLOOKUP không thành công là sự khác biệt giữa giá trị tra cứu của bạn và giá trị tương tự trong cột tra cứu. Trong một số trường hợp, sự khác biệt quá nhỏ nên khó có thể phát hiện bằng mắt thường.

    Giải pháp : Khi VLOOKUP trả về lỗi #N/A trong khi bạn có thể thấy rõ giá trị tra cứu trong tra cứu và dường như cả hai đều được đánh vần giống hệt nhau, điều đầu tiên bạn cần làm là xác định nguyên nhân cốt lõi của vấn đề - công thức hay dữ liệu nguồn.

    Để xem liệu hai giá trị có phải là giống hoặc khác nhau, hãy so sánh trực tiếp theo cách này:

    =E1=A4

    Trong đó E1 là giá trị tra cứu của bạn và A4 là giá trị giống hệt nhau trong cột tra cứu.

    Nếu công thức trả về SAI, điều đó có nghĩa là các giá trị khác nhau theo một cách nào đó, mặc dù chúng trông hoàn toàn giống nhau.

    Trong trường hợp giá trị số , lý do có thể nhất là các số được định dạng dưới dạng văn bản.

    Trong trường hợp giá trị văn bản , rất có thể vấn đề là thừa khoảng trống. Để xác minh điều này, hãy tìm tổng độ dài của hai chuỗi bằng cách sử dụng hàm LEN:

    =LEN(E1)

    =LEN(A4)

    Nếu các số kết quả khác nhau (như trong ảnh chụp màn hình bên dưới ), thì bạn đã xác định được thủ phạm - dấu cách thừa:

    Để giải quyết vấn đề, hãy xóa dấu cách thừa hoặc sử dụng công thức INDEX MATCH TRIM này làm giải pháp thay thế.

    Tại sao VLOOKUP của tôi lấy sai dữ liệu?

    Có thể còn nhiều lý do hơn nữaVLOOKUP của bạn trả về một giá trị sai:

    1. Chế độ tìm kiếm không chính xác . Nếu bạn muốn đối sánh chính xác, hãy đảm bảo đặt đối số range_lookup thành FALSE. Giá trị mặc định là TRUE, vì vậy nếu bạn bỏ qua đối số này, VLOOKUP sẽ cho rằng bạn đang tìm kiếm kết quả gần đúng và tìm kiếm giá trị gần nhất nhỏ hơn giá trị tra cứu.
    2. Cột tra cứu không sắp xếp . Để VLOOKUP khớp gần đúng ( range_lookup được đặt thành TRUE) hoạt động chính xác, cột đầu tiên trong mảng bảng phải được sắp xếp theo thứ tự tăng dần, từ nhỏ nhất đến lớn nhất.
    3. Sao chép trong cột tra cứu . Nếu cột tra cứu chứa hai hoặc nhiều giá trị trùng lặp, VLOOKUP sẽ trả về kết quả khớp tìm thấy đầu tiên, có thể không phải là kết quả bạn mong đợi.
    4. Cột trả về không chính xác . Kiểm tra kỹ số chỉ mục trong đối số thứ 3 :)

    Vlookup không hoạt động giữa hai trang tính

    Trước hết, cần lưu ý rằng các lý do phổ biến của lỗi #N/A, Các lỗi #VALUE và #REF đã thảo luận ở trên có thể gây ra các vấn đề tương tự khi tra cứu từ một trang tính khác. Nếu không phải như vậy, hãy kiểm tra các điểm sau:

    1. Đảm bảo rằng tham chiếu bên ngoài đến một trang tính khác hoặc một sổ làm việc khác là chính xác.
    2. Khi thực hiện Vlookup từ một sổ làm việc khác hiện đang đóng , hãy xác minh rằng công thức của bạn chứa đường dẫn đầy đủ đến sổ làm việc đã đóng.
    3. Nếu

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.