Regularni izrazi
Regularni izrazi su pojam koji potiče iz programiranja, a odnosi se na sekvencu znakova pomoću kojih se definiše kriterijum pretraživanja u okviru zadatog teksta. Od nedavno, Excel je dobio nekoliko funkcija za rad sa regularnim izrazima, a možemo ih iskoristiti i kao argument XMATCH i XLOOKUP funkcija kao dodatni kriterijum za pretragu.
Regularni izraz se sastoji iz niza znakova koji imaju za cilj da opišu šta želimo da nađemo. Kada želite da pronađete znak u nekom opsegu treba da ga prikažete u uglastim zagradama; npr. ako zadate kriterijum „[abc]“ to predstavlja znak „a“, „b“ ili „c“. Zadavanjem kriterijuma „[a-z]“ traži se bilo koje malo slovo u zadatom opsegu, a kriterijum „[^abc]” dozvoljava bilo koje slovo osim „a“, „b“ ili „c“. Na sličan način se zadaje pravilo za pretragu cifara. Na primer „[0-9]“ pretražuje bilo koju cifru unutar zadatog opsega pretrage. Takođe, moguće je navesti i „\d“ za cifre, „\w“ za slova i „\s“ za razmake (space).
Vertikalna linija se koristi kao logičko „ili“. Na primer, ako tražite pojam „Jovan“ ili „Jovana“ za pretragu treba da upotrebite regularan izraz „Jovan|Jovana“. Da bismo ovo isprobali u praksi iskoristimo funkciju REGTEST, čija je sintaksa:
REGEXTEST(<test>;<regularni izraz>;[<osetljivost>])
Prvi argument je ćelija ili opseg gde se vrši pretraga. Drugi argument je regularni izraz koji koristimo za pretragu a poslednji, opcioni argument, služi da odredimo da li pretraga pravi razliku između malih i velikih slova. Ako napišemo formulu:
=REGEXTEST(A2:A9;“Jovan|Jovana“)
funkcija REGTEXT će vratiti vrednost TRUE ako pretraga odgovara kriterijumu, a FALSE ako ne odgovara. Radi lepšeg prikaza dodato je pravilo uslovnog formatiranja koje naglašava tačne vrednosti.
Ako iskoristimo regularni izraz „Jovan(a|o)“ on će služiti za pronalaženje reči „Jovana“ i „Jovano“. U pretrazi se mogu koristiti i džoker znakovi. Tačka (.) je simbol koji zamenjuje jedan znak . Upitnik „?“ označava tačno jedan, a „*“ označava više znakova. Ako upotrebimo regularni izraz „J?van?“ to znači da tražimo sva imena gde drugi i poslednji znak mogu biti bilo koji, a pomoću izraza „Jov*“ tražimo sve reči koje počinju sekvencom „Jov“.
Plus „+“ se koristi da zadamo regularni izraz u kome imamo višestruko ponavljanje nekog znaka. Za detaljnu specifikaciju broja ponavljanja nekog znaka unutar izraza koriste se parametri u vitičastim zagradama. Na primer {n} označava tačno jedno ponavljanje zadatog znaka, {min,} predstavlja minimalno, {,max} maksimalno, a {min,max} raspon minimalnog i maksimalnog ponavljanja nekog znaka. Na primer, uzorak a{2} pretražuje dva ponavljanja znaka „a“ unutar zadatog teksta.
Funkcija REGEXTRACT se koristi da, uz pomoć regularnog izraza, izvučemo neki tekst iz zadatog opsega pretrage. Njena sintaksa je:
REGEXEXTRACT(<test>; <regularni izraz>; [<mod povratka>]; [<osetljivost>])
U ćeliju A1, u novom radnom listu, dodat je tekst sa početka. Ako unesemo formulu:
=REGEXEXTRACT(A1;“izraz*“)
Excel će izvući sva pojavljivanja pojma koji počinje sa „izraz“. Trećim argumentom možemo da zadamo da, umesto prvog pronađenog pojma, vrati dinamičku listu sa svim pojmovima. Poslednji argument služi da zadamo da li je pretraga case sensitive.
Ukoliko želimo da izvršimo zamenu teksta na osnovu zadatog regularnog izraza za to možemo da upotrebimo funkciju REGEXREPLACE. Njena sintaksa je:
REGEXREPLACE(<test>;<regularni izraz>;<zamena>;[<ponavljanje>];[<osetljivost>])
Prvi argument je ćelija ili opseg koji se pretražuju. Drugi argument je tekst koji se koristi za zamenu. Zatim navodimo regularni izraz, da li želimo da izvršimo zamenu samo prvog ili svih pojavljivanja, kao i da li pretraga uzima u obzir mala i velika slova. Na primer, ako napišemo formulu:
=REGEXREPLACE(A1;“izraz*“;“nizov“)
reč „izrazi“ biće zamenjena rečju „nizovi“.
Regularni izrazi mogu se iskoristiti i u okviru XMATCH ili XLOOKUP funkcije. Zamislite da tražimo plazma keks, a nismo sigurni da li je u nazivu proizvoda naveden kao „Plazma“ ili „Plazme“. Ako tražimo poziciju prvog takvog proizvoda, napišimo formulu:
=XMATCH(„PLAZM(A|E)“;B4:B13;3;1)
A ako želimo da vratimo i neke dodatne informacije o ovom proizvodu, napisaćemo formulu:
=XLOOKUP(„PLAZM(A|E)“;B4:B13;A4:E13;““;3;1)
Novina u odnosu na tradicionalne XMATCH i XLOOKUP pretrage sastoji se u tome što, kada navodite argument za način pretrage, možete da izaberete vrednost 3, što upućuje na to da je prvi argument ove funkcije regularni izraz.