Kiểm tra xem giá trị Ô có tồn tại trong Cột hay không, rồi lấy giá trị của Ô TIẾP THEO


89

Sau khi kiểm tra xem giá trị ô có tồn tại trong một cột hay không, tôi cần lấy giá trị của ô bên cạnh ô phù hợp . Ví dụ: tôi kiểm tra xem giá trị trong cell A1có tồn tại trong column Bhay không và giả sử nó khớp B5, thì tôi muốn giá trị trong đó cell C5.

Để giải quyết nửa đầu của vấn đề, tôi đã làm điều này ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")

...va no đa hoạt động. Sau đó, nhờ câu trả lời trước đó trên SO , tôi cũng có thể lấy số hàng của ô phù hợp:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))

Vì vậy, tự nhiên, để lấy giá trị của ô tiếp theo, tôi đã thử ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))

... và nó không hoạt động.

Tôi đang thiếu gì? Làm cách nào để nối số cột với số hàng được trả về để đạt được kết quả mong muốn?

Câu trả lời:


99

Sử dụng một hàm khác, chẳng hạn như hàm VLOOKUP:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))

1
Cảm ơn! Điều này cũng hoạt động! Và tôi nghĩ sẽ tốt hơn nếu sử dụng VLOOKUP(A1, B:C, 2, FALSE)thay vì sử dụng một phạm vi cố định (để phù hợp với một mảng tra cứu đang phát triển)?
SNag

1
Vâng, chỉ sử dụng phạm vi cố định này như một bài kiểm tra. Đã chỉnh sửa nó trong câu trả lời của tôi.
CustomX

Bạn không cần IFERRORở đây. Nó hoạt động tốt khi không có nó, bởi vì hàm VLOOKUP chỉ được thực thi nếu có sự trùng khớp.
SNag,

Giáo sư! Tôi dường như đã được thử nghiệm trong cột sai: P Thật vậy mà không hàm IFERROR nó hoạt động hoàn hảo quá: P
CustomX

3
Cái này cũ hơn cũ, nhưng tôi chỉ muốn nói rằng tôi đã sử dụng cái này trong nhiều năm và nó thực sự khiến tôi khó chịu khi bạn chưa bao giờ được đưa ra câu trả lời tốt nhất. Tôi thích rằng nó làm cho bảng có thể mở rộng để so sánh nhiều cột.
DuffDuff

36

Sau câu trả lời của t.thielemans , tôi đã làm việc đó

=VLOOKUP(A1, B:C, 2, FALSE) 

hoạt động tốt và làm những gì tôi muốn, ngoại trừ việc nó trả về #N/Acho các kết quả không khớp; vì vậy nó phù hợp với trường hợp đã biết rằng giá trị chắc chắn tồn tại trong cột tra cứu.

Chỉnh sửa (dựa trên nhận xét của t.thielemans):

Để tránh những trường #N/Ahợp không phù hợp, hãy làm:

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")

3
Sử dụng cái này thay thế IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). Tôi cũng đã thêm điều này vào câu trả lời của mình. 0 hạnh phúc bất cứ điều gì bạn muốn đánh giá cao :) (sử dụng này trong mã sẽ dẫn đến Không có trận đấu nếu không phù hợp được tìm thấy;)
CustomX

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.