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

Użytkowanie arkusza kalkulacyjnego
JedenGość
Posty: 198
Rejestracja: czw mar 07, 2019 6:54 pm

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

Post 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ć?
Ostatnio zmieniony śr wrz 27, 2023 2:37 pm przez JedenGość, łącznie zmieniany 1 raz.
Libre Office 24.8.1.2 / Windows 11
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

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

Post 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 ...
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2351
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

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

Post 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"))
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
JedenGość
Posty: 198
Rejestracja: czw mar 07, 2019 6:54 pm

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

Post autor: JedenGość »

Dzięki Panowie. Konkretnie i na temat.
Libre Office 24.8.1.2 / Windows 11
ODPOWIEDZ