Waar is die tekst?

Jay moet de cel waarin een bepaalde tekst waarde optreedt bepalen. Hij weet dat hij kan Excel Zoeken en vervangen gebruiken mogelijkheden om handmatig het adres van cellen met een tekst waarde te bepalen, maar hij is op zoek naar een formule om het adres van de cellen te bepalen. Hij vraagt ​​zich af of er een manier is om te zoeken naar stukje tekst binnen een bereik en hebben Excel terug het adres van de cel waarin de tekst wordt gevonden.

Er zijn twee dingen die je kunt proberen. Ten eerste, als u op zoek bent naar een exacte match voor de inhoud van de cel, dan kunt u een formule gebruiken. De basisformule is dit:

= ADRES (MATCH (C2, A: A, 0), 1)

In dit voorbeeld cel C2 bevat de waarde die u zoekt en kolom A is het bereik van de cellen wordt gezocht. De formule gevolg geeft onafhankelijk van de activering van C2 of de waarden in kolom A. Indien dus C2 bevat "appel", dan zal de formule positief koppelen aan cellen die "apple" "Apple" of "APPLE bevatten." Inderdaad, zal elke mix van kapitalisatie passen.

Deze formule zal een adres niet terug voor een cel die bevat wat u zoekt temidden van andere tekst. Dus als u op zoek bent naar "appel" (cel C2), zal het niet het adres van een cel die de zinsnede bevat terugkeren "apple fris." U kunt dit gedrag, een beetje aan te passen, door het toevoegen van jokertekens om het zoeken cel. Bijvoorbeeld, als u zoekt naar "* appel *" dan is de formule retourneert het adres van een cel die "apple" bevat, zelfs als het wordt voorafgegaan of gevolgd door de andere personages.

Hierbij moet worden opgemerkt dat deze formule geeft alleen het adres van de eerste cel in de reeks die aan de criteria voldoet. Als je eigenlijk wilt dat de adressen van alle cellen die voldoen aan de criteria, dan zul je moeten kunnen vertrouwen op een macro. Het volgende is een goed voorbeeld:

Functie FindMe (x als Waaier, y As String) As String
Dim r als Waaier
Dim sResults As String
Dim Ssearch als Koord

Application.Volatile
Ssearch = LCase (y)
Voor elke R In x
Als InStr (1, LCase (CStr (r.Value)), Ssearch)> 0 Then
sResults = sResults & r.Address & ","
End If
Volgende r
Als Len (sResults)> 2 Dan
FindMe = Links (sResults, Len (sResults) - 2)
Anders
FindMe = ""
End If
End Function

U gebruikt de functie door simpelweg het verstrekken van het bereik dat u mee wilt zoeken met wat je wilt zoeken:

= FindMe (A: A, "appel")

Als u een groot bereik te gebruiken (zoals in dit voorbeeld-all van kolom A), kies dan niet verbaasd zijn als de functie neemt een merkbare hoeveelheid tijd om een ​​resultaat terug te keren. Dit is zinvol, omdat het zoeken door elke cel in de reeks, ongeacht of er iets in de cel of niet.

Je hebt ook geen behoefte aan een wildcards met deze functie te gebruiken; wordt ervan uitgegaan dat er een overeenkomst wordt als wat je zoekt ligt ergens in de cel. Het doet er ook geen aandacht besteden aan de kapitalisatie van wat je zoekt of de kapitalisatie van alles wat in het zoekbereik.

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (10.082) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip gevonden in de ribbon-interface van Excel (Excel 2007 en later) hier: Where Is dat tekst ?.