Trong Excel, làm cách nào để kiểm tra xem một ô có trong danh sách các giá trị không (một phạm vi ô)


88

Tôi đã có một phạm vi (A3: A10) có chứa tên và tôi muốn kiểm tra xem nội dung của một ô khác (D1) có khớp với một trong các tên trong danh sách của tôi không.

Tôi đã đặt tên cho phạm vi A3: A10 'some_names' và tôi muốn một công thức excel sẽ cung cấp cho tôi Đúng / Sai hoặc 1/0 tùy thuộc vào nội dung.

Câu trả lời:


92

= COUNTIF (some_names, D1)

nên hoạt động (1 nếu tên hiện diện - nhiều hơn nếu nhiều hơn một thể hiện).


Làm thế nào tôi có thể sửa đổi công thức để nó hoạt động trong trường hợp some_nameschứa 2 cột và thay vì D1 tôi có D1: E1?
user1993

66

Câu trả lời ưa thích của tôi (được sửa đổi từ Ian's) là:

=COUNTIF(some_names,D1)>0

trả về TRUE nếu D1 được tìm thấy trong phạm vi some_names ít nhất một lần hoặc FALSE nếu không.

(COUNTIF trả về một số nguyên bao nhiêu lần tiêu chí được tìm thấy trong phạm vi)


26

Tôi biết OP đặc biệt tuyên bố rằng danh sách này đến từ một loạt các ô, nhưng những người khác có thể vấp phải điều này trong khi tìm kiếm một phạm vi giá trị cụ thể.

Bạn cũng có thể tra cứu các giá trị cụ thể, thay vì phạm vi sử dụng MATCHhàm. Điều này sẽ cung cấp cho bạn số mà trận đấu này phù hợp (trong trường hợp này, vị trí thứ hai, vì vậy 2). Nó sẽ trả về # N / A nếu không có kết quả khớp.

=MATCH(4,{2,4,6,8},0)

Bạn cũng có thể thay thế bốn đầu tiên bằng một tế bào. Đặt số 4 vào ô A1 và nhập số này vào bất kỳ ô nào khác.

=MATCH(A1,{2,4,6,8},0)

1
Rất đẹp. Đừng quên thêm "dấu ngoặc kép" nếu giá trị của bạn không phải là số (tôi đã cố gắng sắp xếp số đó).
dav

1
Đáng buồn thay, bạn không thể sử dụng điều này trong định dạng có điều kiện :(
StarWeaver

Chắc chắn bạn có thể. Với Excel 2007 trở lên, bạn có thể sử dụng hàm IFERROR. = IFERROR (MATCH (A1, {2,4,6,8}, 0), 0) Sau đó, bạn có thể thực hiện định dạng có điều kiện cho dù ô đó = 0 hoặc> 0, tùy theo bạn thích.
RPh_Coder

6
=OR(4={2,4,6,8})
Slai

Câu trả lời này rõ ràng là giải pháp trả về # N / A - đó là sự thật. Nhưng có vẻ không hữu ích: bạn không thể sử dụng # N / A trong mệnh đề if, vì vậy bạn không thể nói IF (MATCH (4 {2,3}, 0), "yay", "boo") ... câu trả lời là # N / A không phải là "boo"
GreenAsJade

18

Nếu bạn muốn biến Countif thành một số đầu ra khác (như boolean), bạn cũng có thể làm:

= IF (COUNTIF (some_names, D1)> 0, TRUE, FALSE)

Thưởng thức!


3
Trợ giúp TRUE và FALSE cho biết những gì cần được thay thế
Darcys22

8

Để đa dạng, bạn có thể sử dụng MATCH, vd

=ISNUMBER(MATCH(D1,A3:A10,0))


4

có một mẹo nhỏ tiện lợi trả về Boolean trong trường hợp phạm vi some_namescó thể được chỉ định rõ ràng như "purple","red","blue","green","orange"sau:

=OR("Red"={"purple","red","blue","green","orange"})

Lưu ý đây KHÔNG phải là một công thức mảng


Trên thực tế, nó một công thức mảng. Những gì nó không phải là một mảng được nhập công thức ;-)
robinCTS

2

Bạn có thể làm tổ --([range]=[cell])trong một IF, SUMIFShoặc COUNTIFStranh cãi. Ví dụ , IF(--($N$2:$N$23=D2),"in the list!","not in the list"). Tôi tin rằng điều này có thể sử dụng bộ nhớ hiệu quả hơn.

Ngoài ra, bạn có thể bao ISERRORquanh một VLOOKUP, tất cả bao quanh một IFtuyên bố. Giống như , IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).


0

Phiên bản Công thức mảng (nhập bằng Ctrl + Shift + Enter):

=OR(A3:A10=D1)

Những công việc này. Tôi nghĩ rằng nó có một downvote vì downvoter không biết cách nhập công thức mảng ... nó sẽ trông giống như {= OR (R34: R36 = T34)} sau khi nhập, nếu bạn nhập chính xác
GreenAsJade

-1

Trong những tình huống như thế này, tôi chỉ muốn được cảnh báo về những lỗi có thể xảy ra, vì vậy tôi sẽ giải quyết tình huống theo cách này ...

=if(countif(some_names,D1)>0,"","MISSING")

Sau đó, tôi muốn sao chép công thức này từ E1đến E100. Nếu một giá trị trong Dcột không có trong danh sách, tôi sẽ nhận được thông báo NHIỆM VỤ nhưng nếu giá trị đó tồn tại, tôi sẽ nhận được một ô trống. Điều đó làm cho các giá trị còn thiếu nổi bật hơn nhiều.

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.