Microsoft Excel od lat ewoluuje, oferując coraz bardziej zaawansowane funkcje, które wspierają użytkowników w codziennej pracy,jak i profesjonalistów pracujących z dużymi zbiorami danych. Jednym z najnowszych dodatków w arsenale Excela jest funkcja REGEXTEST. Dzięki niej możesz szybko i efektywnie sprawdzić, czy dany tekst pasuje do określonego wzorca wyrażeń regularnych (regex).
W tym artykule przyjrzymy się funkcji REGEXTEST w szczególności: jej zastosowaniom, składni, przykładom użycia i potencjalnym scenariuszom praktycznym. Dowiesz się, dlaczego ta funkcja jest tak ważna i jak może pomóc Ci zaoszczędzić czas w pracy z danymi tekstowymi.
Składnia funkcji REGEXTEST jest prosta i składa się z trzech argumentów:
REGEXTEST(tekst; wzorzec; [case_sensitivity])
Argumenty:
Wynik:
Funkcja REGEXTEST zwraca PRAWDA, jeśli tekst pasuje do wzorca, oraz FAŁSZ, jeśli nie ma dopasowania.
Załóżmy, że w kolumnie A jest lista nazw produktów, a chcemy sprawdzić, które z nich zawiera cyfry. Wyrażenie regularne [0-9] pozwala na wyszukanie dowolnych cyfr. W momencie znalezienia szukanego wzorca funkcja zwróci wartość PRAWDA, w przeciwnym razie zwracana jest wartość FAŁSZ.
Załóżmy, że każdy adres mailowy w firmie składa się z trzech pierwszych liter imienia połączonych z trzema pierwszymi literami nazwiska i z frazą “@firma.pl”. Tu również możemy wykorzystać funkcję z wyrażeniem regularnym [a-z]. Nie jest to natomiast w pełni prawidłowe rozwiązanie, ponieważ maile zapisane z wykorzystaniem wielkich liter nie zostaną zaakceptowane.
Naprawienie tego problemu możemy zrobić na dwa sposoby. Jednym z nich jest zapisane wyrażenia regularnego w postaci [a-zA-Z], co sprawie, że excel będzie brał pod uwagę wszystkie litery zarówno małe jak i wielkie od a do z.
Innym sposobem może być skorzystanie z argumentu opcjonalnego funkcji, który określa wrażliwość na wielkie litery. Ustawienie go na wartość 1 sprawi, że wielkość liter nie będzie brana pod uwagę.
Jeżeli w poprzednim przykładzie mielibyśmy jakikolwiek adres mailowy z polskim znakiem, to niestety funkcja nie mogłaby zwrócić nam prawdy, przy użyciu wyrażenia [a-z]. Wyrażenie to niestety nie bierze pod uwagę polskich znaków. Aby obejść ten problem możemy rozbudować to wyrażenie o listę polskich znaków i będzie to wyglądało w następujący sposób [a-zęóąśłżźćń]. Zapis ten bierze pod uwagę wszystkie litery od a do z, ale dopuszcza także polskie znaki.
Teoretycznie wcześniejsze rozwiązanie działa, jednakże jeśli mail zapisany w wierszu 4 poprawny niestety nie jest. Zamiast końcówki .pl mamy końcówkę .pll. Zapis funkcji z poprzedniego przykładu nie gwarantuje nam tego, że zakończeniem wpisu ma być “@firma.pl”. Taki zapis gwarantuje nam, że fraza “@firma.pl” ma wystąpić gdziekolwiek w przeszukiwanym tekście. Aby zagwarantować sobie poprawność rozwiązania warto wykorzystać symbol $, który gwarantuje nam, że zapis “@firma.pl” będzie końcem całego adresu mailowego.
Na liście maili w podanym przykładzie, zakończenie które występuje to w zdecydowanej większości .pl. ale jest też jeden adres mailowy zakończony .com. Aby uwzględnić też taki zapis w poprawności, należy skorzystać zapisu grupy alternatyw, czyli dopasowania jednego z dwóch lub więcej możliwych tekstów.
Na liście z adresami mailowymi może okazać się, że ktoś dopisał jakiś inny tekst. Rozwiązaniem tego problemu, może być wykorzystanie operatora ^. Wpisanie go, gwarantuje nam, że to co jest po nim ma być na początku tekstu.
Jak widać na pokazanych przykładach funkcja REGEXTEST ma naprawdę szereg zastosowań począwszy od automatycznej klasyfikacji danych, przez czyszczenie danych poprzez sprawdzenie np. błędne wpisanych numerów telefonu czy też oczekiwanego formatu.