Strona 1 z 1

Czy komórka zawiera cokolwiek oprócz liter?

: śr mar 29, 2023 10:20 am
autor: JedenGość
Szukam, szukam i nie widzę...

Próbuję zbudować formułę, ew. znaleźć funkcję, która odpowie, czy dana komórka zawiera cokolwiek innego niż litery. Czyli cyfry i różnego rodzaju znaki jak ! , @ # $ % { " ' itd.

Zacząłem kombinować z:

Kod: Zaznacz cały

=ZNAJDŹ("1";A1;1)
Tylko że tym sposobem musiałbym stworzyć osobną formułę dla ponad 30 znaków (na oko licząc).

Jest jakaś opcja, żeby szybciej wykryło, czy w komórce znajduje się coś innego niż litera?

Re: Czy komórka zawiera cokolwiek oprócz liter?

: śr mar 29, 2023 1:43 pm
autor: Jan_J
albo dopasowanie wyrażenia regularnego
funkcją REGEX(tekst; wzorzec) — wynikem jest fragment tekstu zgodny z wzorcem albo błąd #N/A
formułą ISERROR(REGEX(tekst; wzorzec)) — wynikiem jest odpowiedź na pytanie „tekst nie zawiera fragmentu zgodnego z wzorcem”formułą NOT(ISERROR(REGEX(tekst; wzorzec))) — wynikiem jest odpowiedź na pytanie „tekst zawiera fragmentu zgodny z wzorcem”

W arkuszu „komórka o zawartości liczbowej” jest czymś innym niż „komórka zawierająca cyfry”. Wyrażania regularne sprawdzają zgodność tekstu z wzorcem; zawartość komórki jest wcześniej konwertowana jako tekst. Jeśli chcesz wykryć typ zawartości komórki albo wyrażenia, lepiej użyć funkcji ISNUMBER(wartość).

Re: Czy komórka zawiera cokolwiek oprócz liter?

: śr mar 29, 2023 4:34 pm
autor: JedenGość
Dzięki za podpowiedź. Skupiłem się na opcji z REGEX. Czytając ten wpis Jermora
viewtopic.php?p=24361

pokombinowałem tak:

komórka tekstowa A1: AGH!L3

Kod: Zaznacz cały

=REGEX(A1;"\d{1}")
wynik: 3

OK. Jak jednak znaleźć "!". Nie wiem czemu odpowiada mała literka "d" w formule. Domyślam się, że cyfrom. Jak jednak znaleźć wykrzykniki itp.?

Dalej nasuwa mi się pytanie, czy można w ten sposób znaleźć wszelkie znaki specjalne, litery inne niż angielskie, np. ą, ś, ä, ø, č itd.?

Re: Czy komórka zawiera cokolwiek oprócz liter?

: śr mar 29, 2023 6:01 pm
autor: Jermor
Jeżeli masz stwierdzić, czy w tekście jest cokolwiek innego niż litery, to uzyj funkcji:

Kod: Zaznacz cały

=JEŻELI.BŁĄD(SZUKAJ.TEKST("[^[:alpha:]]";B3);0)
B3 zawiera jakiś tekst. zapis wyrażenia regularnego "[^[:alpha:]]" oznacza, że szukasz dowolnego znaku innego niż litera.
JEŻELI.BŁĄD() jest potrzebny, gdyż gdy są same litery funkcja zwróci błąd #ARG!. Inaczej mówiąc, 0 oznacza, że są same litery.
W tym zapisie spacja też nie jest literą, aby nie uwzględniać spacji, trzeba zapis wyrażenia regularnego zastąpić tym:

Kod: Zaznacz cały

"[^[:alpha:]|[:space:]]"
Wynikiem jest liczba mówiąca, na jakiej pozycji został znaleziony znak niebędący literą.

Re: Czy komórka zawiera cokolwiek oprócz liter?

: śr mar 29, 2023 7:12 pm
autor: Jermor
O symbolach wyrażeń regularnych przeczytasz w helpie. Wersja on-line pomocy nie jest przetłumaczona, ale sporo artykułów znajdziesz w Internecie.
Z tym że w LibreOffice jest nazwijmy to, pewien podzbiór reguł.
O wyrażeniach regularnych napisałem trochę tutaj: https://yestok.pl/ooo/y16.php#p88

Re: Czy komórka zawiera cokolwiek oprócz liter?

: śr mar 29, 2023 8:05 pm
autor: JedenGość
I wszystko w temacie. Jermor, Twoje formuły, jak zawsze działają.

Dziękuję!