2012-11-02 47 views
9

Tôi có một mảng excel với nhiều giá trị. Một số ít hơn 256 ký tự và một số có độ dài lớn hơn 256.Cách khắc phục giới hạn chức năng Excel Vlookup là 256 ký tự

Khi tôi cố gắng thực hiện VLookup bằng chuỗi mẫu, tôi có thể nhận kết quả khi nó khớp với các hàng có ít hơn 256 ký tự. Đối với các hàng lớn hơn 256 ký tự, nó trả về một '# N/A'.

Có cách nào để sử dụng Vlookup hoặc bằng cách sử dụng một số hàm dựng sẵn khác trong Excel mà tôi có thể vượt qua giới hạn này không?

Trả lời

16

Nếu bạn đang sử dụng VLOOKUP như thế này

=VLOOKUP(A2,D2:Z10,3,FALSE)

tức là nhìn lên A2 trong D2: D10 và trả về một kết quả từ F2: F10 sau đó thử công thức này thay vì

=INDEX(F2:F10,MATCH(TRUE,INDEX(D2:D10=A2,0),0))

phạm vi thay đổi theo yêu cầu

Chỉnh sửa:

Tôi đã tạo mẫu ở đây - các giá trị trong A2: A10 giống với G2: G10 nhưng theo thứ tự khác. Chiều dài của mỗi người trong số những giá trị được hiển thị trong cột B, VLOOKUP trong cột C không thành công trên giá trị A col> 255 ký tự nhưng công thức INDEX/Đội hình thi đấu trong col D làm việc trong mọi trường hợp

https://www.dropbox.com/s/fe0sb6bkl3phqdr/vlookup.xls

+0

INDEX (D2: D10 = A2,0) không hoạt động và trả về false cho hơn 356 giá trị dài ký tự. – sandyiit

+1

OK, có lẽ tôi đang thiếu một cái gì đó, công thức VLOOKUP bạn đang sử dụng, là tất cả mọi thứ trên cùng một bảng tính? Tôi đính kèm một ví dụ trong câu trả lời của tôi –

+0

Tôi là một người dùng khác với vấn đề dame, Có quan trọng là nó nằm trên cùng một trang tính không? Một cái gì đó như đầu ra này là muốn: Xác minh 'Văn bản' thuộc tính không thành công! Dự kiến: 'C: \ Data \ Sample_Data_for_QA', So sánh: 'Tương tự', Thực tế: 'Nguồn cấp RSS'. ........ # N/A - là đầu ra ..... Phương trình chỉ số = INDEX ('[Old Regression.xlsm] Báo cáo hồi quy'! $ E $ 4: $ E $ 96 , MATCH (B23, '[Old Regression.xlsm] Báo cáo hồi quy'! $ B $ 4: $ B $ 96)) ...... trước = VLOOKUP (B7, '[Old Regression.xlsm] Báo cáo hồi quy'! $ B $ 4: $ G $ 96, 4, FALSE) –

3

tôi đã cùng một vấn đề và tôi đã viết vlookup nguyên thủy tùy chỉnh này. Nó không quan tâm đến độ dài của các giá trị của các tế bào của bạn.

Function betterSearch(searchCell, A As Range, B As Range) 
     For Each cell In A 
      If cell.Value = searchCell.Value Then 
        betterSearch = B.Cells(cell.Row, 1) 
        Exit For 
      End If 
      betterSearch = "Not found" 
     Next 

End Function 

PS Không thể tự hỏi tại sao trường hợp VLOOKUP gốc được viết bởi chuyên gia được triển khai trong trường hợp cụ thể này kém hơn func 10 hàng này?