Strona 1 z 1

[solved] Długość tekstu bez spacji i znaków specjalnych.

: śr wrz 27, 2023 11:06 am
autor: JedenGość
Załóżmy, że mamy taki, przykładowy tekst.
ala m’a k-ota
Funkcja DŁ mówi nam, że znaków jest 13.
A ja chcę wiedzieć, ile jest znaków bez spacji, myślników, apostrofów, kropek, przecinków i wszelkich innych znaków specjalnych (jeśli takowe w danym tekście wystąpią).

Tu akurat jest ich 9.

Zaczynam zabawę z funkcjami tekstowymi:
ZNAJDŻ(" ";A1) - znajduje spację na 4 pozycji. Jednak jest ich więcej...
ZNAJDŻ("'";A1) - #ARG! - błąd przy wyszukiwaniu apostrofu...

Jak to rozwiązać?

Re: Długość tekstu bez spacji i znaków specjalnych.

: śr wrz 27, 2023 12:14 pm
autor: Jan_J
Funkcja REGEX w LibreOffice da radę.

REGEX(tekst_do_analizy; wyszukiwany_wzorzec; tekst_zastępujący; opcje)

Na przykład
=REGEX(A1;"[ ""’';:-]";"";"g")
usunie wszystkie wystąpienia znaków podanych w nawiastach [...] czyli w tym przypadku spacji, cudzysłowu ", apostrofu ', apostrofu ’, średnika, dwukropka : i łącznika -. Opcja "g" na końcu (global) każe zastąpić każde wystąpienie pasujące do wzorca.
Uwaga: wszystkie argumenty funkcji REGEX są typu tekstowego — stąd cudzysłowy "..." — z tym, że ostatni argument może być również liczbą całkowitą.

Tak więc =LEN(REGEX(A1;"[ ""’';:-]";"";"g")) zrobi to co chcesz. Musisz tylko precyzyjnie określić, jakie znaki (albo ich grupy) mają być wycięte.

Funkcja regex w LibreOffice Calc:
patrz https://help.libreoffice.org/latest/pl/ ... 2233029549

Wyrażenia regularne:
w LibreOffice — patrz https://help.libreoffice.org/latest/pl/ ... _id3146765
w serwisie unicode.org — patrz https://unicode-org.github.io/icu/userg ... characters

// fatalne nazwy funkcji. REGEX i REGEXPP służą do zupełnie innych rzeczy ...

Re: Długość tekstu bez spacji i znaków specjalnych.

: śr wrz 27, 2023 1:02 pm
autor: Jermor
Możesz także zapisać formułę:

Kod: Zaznacz cały

=DŁ(REGEX(A1;"[^[:ALPHA:]]";"";"g"))
Przy niej nie musisz wybierać znaków. Ona wszystkie znaki spoza zakresu liter zamienia na "nic".
A jesli ma uwzgledniac także cyfry, to

Kod: Zaznacz cały

=DŁ(REGEX(A1;"[^[:ALPHA:]|[:DIGIT:]]";"";"g"))
albo

Kod: Zaznacz cały

=DŁ(REGEX(A1;"[^[:ALNUM:]]";"";"g"))

Re: Długość tekstu bez spacji i znaków specjalnych.

: śr wrz 27, 2023 2:37 pm
autor: JedenGość
Dzięki Panowie. Konkretnie i na temat.