Jak najszybciej rozdzielić tekst od liczby

Użytkowanie arkusza kalkulacyjnego
KontoLibreOffice
Posty: 92
Rejestracja: wt paź 04, 2022 5:48 pm

Jak najszybciej rozdzielić tekst od liczby

Post autor: KontoLibreOffice »

liczba i jej jednostka maja być osobno.
Załączniki
towar wz_0001.ods
(24.94 KiB) Pobrany 65 razy
7.5.6.2 (X86_64)
KontoLibreOffice
Posty: 92
Rejestracja: wt paź 04, 2022 5:48 pm

Re: Jak najszybciej rozdzielić tekst od liczby

Post autor: KontoLibreOffice »

znalazłem formułę która spełniła zadanie dla podanego przykładu
=LEWY(C1;SZUKAJ.TEKST(" ";C1;1))
Moje pytanie jednak nadal obowiązuję na [przyszły użytek].
W szczególności jak najszybciej/ najprościej rozdzielić jeden ciąg liczb połączony [ lub rozdzielony spacją ] z ciągiem znaków.
7.5.6.2 (X86_64)
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Jak najszybciej rozdzielić tekst od liczby

Post autor: Jermor »

Najlepiej zrobić to funkcją REGEX() (opisaną m.in. tu: viewtopic.php?p=23188#p23188)
Przykład rozwiązania zwracam w załączniku.
Załączniki
towar wz_0001_J.ods
(27.94 KiB) Pobrany 61 razy
AOO 4.1.15, LO 7.5.9 (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.
KontoLibreOffice
Posty: 92
Rejestracja: wt paź 04, 2022 5:48 pm

Re: Jak najszybciej rozdzielić tekst od liczby

Post autor: KontoLibreOffice »

Nie działa, przynajmniej u mnie.
7.5.6.2 (X86_64)
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Jak najszybciej rozdzielić tekst od liczby

Post autor: Jermor »

Taka odpowiedź, to nie odpowiedź. Wczytałem swój wysłany na forum plik, tak wygląda początek tabelki
obraz_2023-03-29_180413446.png
obraz_2023-03-29_180413446.png (12.04 KiB) Przejrzano 535 razy
AOO 4.1.15, LO 7.5.9 (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.
KontoLibreOffice
Posty: 92
Rejestracja: wt paź 04, 2022 5:48 pm

Re: Jak najszybciej rozdzielić tekst od liczby

Post autor: KontoLibreOffice »

Liczby mają znajdować się w osobnej kolumnie oraz jednostki w osobnej kolumnie.
Tak naprawdę najważniejsze były liczby.
Chodziło o to że przekonwertowałem plik .jpeg na .ods i chciałem sprawdzić poprawność danych tj. czy suma( ilość*wartość ) dadzą identyczną wartość jak na zeskanowanym dokumencie. Wykorzystałem do tego funkcję którą znalazłem w Internecie a potem poprawiłem ręcznie dwa albo trzy błędy. W tym przypadku dało to radę ale gdyby błędów byłoby znacznie więcej to byłoby to nie efektywne.
Na przyszły użytek, chciałbym wiedzieć jak rozdzielić ciąg liczb a potem znaków najlepiej nie regularnych np.
123.op
23 szt
25Szt
30kg
30 Kg
28 op.
Ostatnio zmieniony czw mar 30, 2023 9:29 am przez KontoLibreOffice, łącznie zmieniany 1 raz.
7.5.6.2 (X86_64)
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Jak najszybciej rozdzielić tekst od liczby

Post autor: Jan_J »

1. Formułami — zrobić dwie kolumny z formułami REGEX. Pierwsza będzie zachowywać pierwszą grupę znaków (cyfry i ew. część ułamkową po przecinku), a druga — drugą (jednostki). W skrócie, jeśli mix znajduje się a kolumnie A, to w B:

Kod: Zaznacz cały

=REGEX(A1; "([-]?[0-9]+(,[0-9]+)?) *.*"; "$1")
zaś w C:

Kod: Zaznacz cały

=REGEX(A1; "([-]?[0-9]+(,[0-9]+)?) *(.*)"; "$3")
Oto przykładowy efekt:

Kod: Zaznacz cały

[A]	[B]	[C]
12cm	12	cm
-21m	-21	m
3 kg	3	kg
3,14pi	3,14	pi
3,14 pi	3,14	pi
1e5 sec	1	e5 sec
1,2,3 po kolei	1,2	,3 po kolei
a be ce	a be ce	a be ce
Trzeci od końca wiersz zawiera zapis liczby z czynnikiem skalującym, czyli naukowej. Widać, że jeśli chesz je rozpoznawać, trzeba jeszcze trochę popracować nad wzorcem liczby.
W dwóch ostatnich wierszach zawartość jest niezgodna z wzorcem.

2. Ręcznie — wziąć wynikową kolumnę @Jermor-a i wkleić ją „specjalnie” ze wskazaniem spacji jako separatora
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Jak najszybciej rozdzielić tekst od liczby

Post autor: Jermor »

Możesz także wykorzystac taki sposób:
Dane są w kolumnie A. W kolumnie B wpisujesz formułę:

Kod: Zaznacz cały

=WARTOŚĆ(REGEX(A5;"^[-+]?\d+,?\d*"))
REGEX() zawsze zwraca tekst, dlatego użyta jest funkcja WARTOŚĆ(). REGEX() zwraca tylko liczbę jeśli zaczyna ona cały tekst, uwzględniając znak liczby i ewentualny przecinek dziesiętny.
W kolumnie C wpisujesz formułę:

Kod: Zaznacz cały

=USUŃ.ZBĘDNE.ODSTĘPY(PRAWY(A5;DŁ(A5)-DŁ(B5)))
Ta formuła zwraca ci wszystko to, co jest za liczbą. Funkcja USUŃ.ZBĘDNE.ODSTĘPY() usunie ewentualne początkowe spacje.
Jeśli ciąg nie będzie się zaczynał znakiem liczby lub cyfrą wynikiem będzie #N/D.
Tak wyglądałyby twoje dane.
obraz_2023-03-30_120438899.png
obraz_2023-03-30_120438899.png (3.04 KiB) Przejrzano 447 razy
AOO 4.1.15, LO 7.5.9 (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.
ODPOWIEDZ