Analyseer elk teken in een cel in Excel met behulp van de triade van Indirect(), Row() & Mid()

Inhoudsopgave

Vandaag ga ik je een krachtige formulecocktail geven. De minder gebruikte INDIRECT() en ROW()-functies kunnen samen met de MID()-functie een prachtig brouwsel creëren.

Deze triade stelt je in staat om in de inhoud van een cel te komen. en analyseer elk personage afzonderlijk. Stel bijvoorbeeld dat u Excel123 in een cel hebt en u wilt bepalen of deze een numerieke waarde bevat of niet (wat het doet!!). Ingebouwde formules van Excel kunnen u hier niet helpen, aangezien Excel dit als tekst beschouwt (Probeer de functie Type() te gebruiken om het zelf te zien).

Wat je hier nodig hebt, is een manier om elk teken afzonderlijk te controleren en vervolgens te bepalen of het een nummer bevat. Laten we eerst eens kijken naar de formule die elk teken kan scheiden:

=MID(B2,RIJ(INDIRECT("1:"&LENGTE(B2))),1)

Hier werkt dit:

Als je nu alles hebt ontleed, ben je vrij om elk personage afzonderlijk te analyseren.

Merk op dat deze techniek het beste kan worden gebruikt in combinatie met andere formules (zoals je later in dit bericht zult zien). Als een op zichzelf staande techniek kon het nauwelijks van enig nut zijn. Indirect() is ook een vluchtige functie, dus wees voorzichtig. [Meer weten over vluchtige formule]

Hier zijn een paar voorbeelden waarbij deze techniek nuttig kan zijn:

1. Om cellen te identificeren die een numeriek teken bevatten:

Stel dat u een lijst hebt zoals hieronder weergegeven, en u wilt elke cel identificeren (of filteren) die een numeriek teken ergens in de cel bevat

Gebruik hiervoor de volgende formule. Het geeft een Waar als een cel een numeriek teken bevat, en niet waar als dat niet het geval is.

=OF(ISGETAL(MID(A2,RIJ(INDIRECT("1:"&LENGTE(A2))),1)*1))

Gebruik Control + Shift + Enter om deze formule in te voeren (in plaats van Enter), omdat het een matrixformule is.

2. Om de positie van het eerste voorkomen van een nummer te identificeren

Gebruik hiervoor de volgende formule. Het retourneert de positie van het eerste voorkomen van een getal in een cel. Als een cel bijvoorbeeld ProductA1 bevat, zal deze terugkeren 9. Als er geen nummer is, keert het terug “Geen numeriek karakter aanwezig”

=IFERROR(MATCH(1,-ISNUMBER(MID(B3,ROW(INDIRECT("1:"&LEN(B3))),1)*1),0),”Geen numeriek teken aanwezig”)

Gebruik Control + Shift + Enter om deze formule in te voeren

Ik hoop dat dit je wat tijd en moeite bespaart. Als je op een andere manier komt om deze techniek te gebruiken, deel deze dan ook met mij.

wave wave wave wave wave