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

In Excel, hoe controleer ik of een cel in een lijst met waarden staat (een bereik van cellen)

Ik heb een bereik (A3:A10) dat namen bevat, en ik wil graag controleren of de inhoud van een andere cel (D1) overeenkomt met een van de namen in mijn lijst.

Ik heb het bereik A3:A10 ‘some_names’ genoemd, en ik wil graag een excelformule die me waar/onwaar of 1/0 geeft, afhankelijk van de inhoud.

Antwoorden (9)

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

=COUNTIF(sommige namen,D1)

zou moeten werken (1 als de naam aanwezig is - meer als meer dan één instantie).

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

Mijn voorkeursantwoord (gewijzigd van Ian) is:

=COUNTIF(some_names,D1)>0

die TRUE teruggeeft als D1 tenminste één keer in het bereik wordt gevonden, of FALSE anders.

(COUNTIF geeft een geheel getal van het aantal keren dat het criterium in het bereik wordt gevonden)

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

Ik weet dat de OP specifiek vermeldde dat de lijst afkomstig was van een reeks cellen, maar anderen zouden hier op kunnen struikelen bij het zoeken naar een specifieke reeks waarden.

Je kunt ook specifieke waarden opzoeken, in plaats van een reeks met behulp van de MATCH -functie. Dit geeft u het nummer waar dit overeenkomt (in dit geval de tweede plaats, dus 2). Het geeft #N/A terug als er geen overeenkomst is.

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

U zou ook de eerste vier kunnen vervangen door een cel. Zet een 4 in cel A1 en typ dit in een andere cel.

=MATCH(A1,{2,4,6,8},0)
18
18
18
2013-05-29 21:09:03 +0000

Als je de countif wilt veranderen in een andere uitgang (zoals boolean) kun je ook doen:

=IF(COUNTIF(sommige namen,D1)>0, TRUE, FALSE)

Enjoy!

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

Voor de afwisseling kunt u gebruik maken van MATCH, bijv.

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

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

er is een handige kleine truc die Booleaans in het geval dat bereik some_names expliciet kan worden gespecificeerd in "purple","red","blue","green","orange":

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

Opmerking: dit is GEEN matrixformule

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

U kunt --([range]=[cell]) in een IF, SUMIFS, of COUNTIFS argument nestelen. Bijvoorbeeld, IF(--($N$2:$N$23=D2),"in the list!","not in the list"). Ik denk dat dit het geheugen efficiënter kan gebruiken.

Als alternatief kun je een ISERROR rond een VLOOKUP wikkelen, allemaal rond een IF statement. Zoals, IF( ISERROR ( VLOOKUP() ) , "not in the list" , "in the list!" ).

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

Array Formula-versie (invoeren met Ctrl + Shift + Enter):

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

In dit soort situaties wil ik alleen gewaarschuwd worden voor mogelijke fouten, dus ik zou de situatie op deze manier oplossen…

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

Dan zou ik deze formule kopiëren van E1 naar E100. Als een waarde in de D kolom niet in de lijst staat, krijg ik het bericht MISSING maar als de waarde bestaat, krijg ik een lege cel. Dat maakt dat de ontbrekende waarden veel meer opvallen.