Excel-formule: Match first begint niet met -

Inhoudsopgave

Generieke formule

(=MATCH(TRUE,IF(LEFT(range,1)"N",TRUE),0))

Samenvatting

Om de eerste waarde te matchen die niet met een specifieke tekenreeks begint, kunt u een array gebruiken op basis van de MATCH- en LEFT-functies. In het getoonde voorbeeld is de formule in F5:

(=MATCH(TRUE,IF(LEFT(code,1)"N",TRUE),0))

waarbij "code" het benoemde bereik is B5: B12.

Opmerking: dit is een matrixformule en moet worden ingevoerd met control + shift + enter.

Uitleg

De sleutel tot deze formule is de matrix of TRUE en FALSE waarden geconstrueerd met deze uitdrukking:

LEFT(code,1)"N"

Hier wordt elke waarde in het genoemde bereik "code" geëvalueerd met de logische test "eerste letter is niet N". Het resultaat is een array of TRUE en FALSE waarden als volgt:

(FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE)

Deze array wordt in de MATCH-functie ingevoerd als de lookup-array. De opzoekwaarde is WAAR en het zoektype wordt op nul gezet om een ​​exacte overeenkomst af te dwingen. De functie MATCH retourneert de positie van de eerste waarde die niet begint met de letter "N" (Z09876), namelijk 5.

INDEX en MATCH

Om een ​​waarde op te halen die is gekoppeld aan de positie die door MATCH wordt geretourneerd, kunt u de functie INDEX toevoegen. In het getoonde voorbeeld is de formule in F6:

(=INDEX(value,MATCH(TRUE,LEFT(code,1)"N",0)))

Merk op dat we dezelfde MATCH-formule hierboven gebruiken om een ​​rijnummer aan INDEX te geven, waarbij de array is ingesteld op het benoemde bereik "waarde". Net als eerder geeft MATCH 5 terug. INDEX retourneert vervolgens de waarde op die positie, -23.

Net als voorheen is dit een matrixformule en moet deze worden ingevoerd met control + shift + enter.

Interessante artikelen...