2013-05-29 20:43:50 +0000 2013-05-29 20:43:50 +0000
89
89

Excelで、セルが値のリスト(セルの範囲)にあるかどうかを確認するにはどうすればよいですか?

名前を含む範囲(A3:A10)を持っていて、別のセル(D1)の内容がリストの中の名前の一つと一致するかどうかをチェックしたいんだけど、どうすればいいの?

私はA3:A10の範囲に「some_names」という名前をつけました。

回答 (9)

92
92
92
2013-05-29 20:47:46 +0000

=COUNTIF(some_names,D1)

は動作するはずです(名前がある場合は1 - 複数のインスタンスがある場合はそれ以上)。

66
66
66
2013-06-06 20:40:03 +0000

私の好みの答えは (Ian のものを修正したもの) 次のようになります:

=COUNTIF(some_names,D1)>0

は、D1 が範囲内の somesomenames に少なくとも一度でも見つかった場合に TRUE を返し、そうでない場合に FALSE を返します。

(COUNTIF は範囲内に何度見つかったかを整数で返します)

26
26
26
2014-11-10 22:57:45 +0000

私は、OPがリストがセルの範囲から来たと具体的に述べていることを知っていますが、他の人は、特定の範囲の値を探しているときにこれにつまずくかもしれません。

また、 MATCH 関数を使って、範囲ではなく特定の値を調べることもできます。これは、これが一致する番号(この場合、2 番目のスポット、つまり 2)を返します。一致しない場合は #N/A を返します。

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

最初の 4 つをセルに置き換えることもできます。セルA1に4を入れて、これを他のセルに入力します。

18
18
18
2013-05-29 21:09:03 +0000

もし countif を他の出力(boolean)にしたい場合は、以下のようにします:

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

楽しんでください!

8
8
8
2013-05-29 23:28:54 +0000

多様性のためには MATCH を使用することができます。

5
5
5
2018-07-11 22:06:20 +0000

は、範囲 some_names"purple","red","blue","green","orange" で明示的に指定された場合にブール値を返すちょっとしたトリックがあります:

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

注意: これは配列式ではありません。

2
2
2
2013-12-05 19:33:00 +0000

--([range]=[cell])は、IFSUMIFS、またはCOUNTIFSの引数に入れ子にすることができます。例えば、IF(--($N$2:$N$23=D2),"in the list!","not in the list")。この方がメモリをより効率的に使うかもしれないと思います。

あるいは、ISERRORVLOOKUP 文の周りにすべて巻きつけることもできます。例えば、IFのように。

0
0
0
2016-12-08 12:38:21 +0000

配列式のバージョン(Ctrl + Shift + Enterで入力):

=OR(A3:A10=D1)
-1
-1
-1
2013-08-24 11:59:30 +0000

このような状況では、エラーの可能性がある場合にのみ警告を表示したいので、次のように解決します…

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

そして、この式を E1 から E100 にコピーします。もしD列の値がリストにない場合、私はメッセージMISSINGを取得しますが、値が存在する場合、私は空のセルを取得します。そうすることで、欠落している値がより目立つようになります。