Ignorowanie tekstu

Użytkowanie arkusza kalkulacyjnego
Fiszek
Posty: 4
Rejestracja: wt kwie 27, 2021 7:57 pm

Ignorowanie tekstu

Post autor: Fiszek »

Witam serdecznie jako iż w tego typu programach ostatnio bawiłem się 15 lat temu mam spore luki w wiedzy, bardzo proszę o wyrozumiałość :knock:
Moje pytanie brzmi
Czy jeżeli w A1 mam "101 aaa" a w A2 "102 bbb" to mogę to jakoś odjąć od siebie (A2-A1) bez błędu przez aaa/bbb ? Bo próbuję kombinuję i mi nie idzie.
Z góry przepraszam za idiotyczne pytanie, ale mam sporo takich wierszy i pojedynczo jest to istotne a chciałbym móc wyliczyć sobie sumę lub różnicę
Ostatnio zmieniony wt kwie 27, 2021 8:39 pm przez Fiszek, łącznie zmieniany 1 raz.
LibreOffice 7.0.5.2 / Manjaro
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Ignorowanie tekstu

Post autor: Jan_J »

Operacje arytmetyczne dotyczą liczb. Arkusz kalkulacyjny rozróżnia dane liczbowe od danych tekstowych (do pewnego stopnia, ponieważ teksty wyglądające jak zapisy liczb mogą podlegać niektórym operacjom arytmetycznym).
W tym przypadku można by sobie pomóc na kilka sposobów:

1. rozdzielić kolumnę tekstu na części, z których jedna będzie kolumną liczbową — za pomocą opcji „Dane/Tekst jako kolumny”.

2. wyizolować argumenty dla sumy / różnicy w formule obliczeniowej, np. zamiast

Kod: Zaznacz cały

=A2-A1
użyć

Kod: Zaznacz cały

=LEWY(A2;3)-LEWY(A1;3)
Ten sposób polega na wycięciu z komórek A po 3 początkowe znaki; co prawda tekst nie jest liczbą, ale tekst złożony tylko z cyfr zostanie zamieniony na liczbę przy próbie obliczenia sumy albo różnicy. Zamiast „magicznej” 3 można znaleźć położenie spacji i wyjąć znaki na lewo od jej wystąpienia, czyli do znaku o 1 pozycję wcześniejszego włącznie:

Kod: Zaznacz cały

=LEFT(A2; FIND(" "; A2)-1) - LEFT(A1; FIND(" "; A2)-1)
LEFT to po polsku LEWY, a FIND — chyba SZUKAJ.TEKST? a może ZNAJDŹ?
Dla pewności warto by jeszcze zabezpieczyć się przed niewystąpieniem spacji w tekście...
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Fiszek
Posty: 4
Rejestracja: wt kwie 27, 2021 7:57 pm

Re: Ignorowanie tekstu

Post autor: Fiszek »

Jan_J pisze:Operacje arytmetyczne dotyczą liczb. Arkusz kalkulacyjny rozróżnia dane liczbowe od danych tekstowych (do pewnego stopnia, ponieważ teksty wyglądające jak zapisy liczb mogą podlegać niektórym operacjom arytmetycznym).
W tym przypadku można by sobie pomóc na kilka sposobów:

1. rozdzielić kolumnę tekstu na części, z których jedna będzie kolumną liczbową — za pomocą opcji „Dane/Tekst jako kolumny”.

2. wyizolować argumenty dla sumy / różnicy za pomocą formuły, np. zamiast formuły

Kod: Zaznacz cały

=A2-A1
użyć

Kod: Zaznacz cały

=LEWY(A2;3)-LEWY(A1;3)
Ten sposób polega na wycięciu z komórek A po 3 początkowe znaki; co prawda tekst nie jest liczbą, ale tekst złożony tylko z cyfr zostanie zamieniony na liczbę przy próbie obliczenia sumy albo różnicy. Zamiast „magicznej” 3 można znaleźć położenie spacji i wyjąć znaki przed jej wystąpeiniem, czyli do znaku o 1 wcześniejszego:

Kod: Zaznacz cały

=LEFT(A2; FIND(" "; A2)-1) - LEFT(A1; FIND(" "; A2)-1)
LEFT to po polsku LEWY, a FIND — chyba SZUKAJ.TEKST? a może ZNAJDŹ?
Dla pewności warto by jeszcze zabezpieczyć się przed niewystąpieniem spacji w tekście...

Nie rozumiem skrótu USD? bo chyba nie o dolary chodzi?

Dziękuję bardzo
Tak chodziło o $ muszę jakoś ogarnąć ile komu pożyczam bo zaczynam się gubić i w końcu popłynę z tematem.

Spokojnie nie robię na tej informacji pieniędzy po prostu pomyślałem o odświeżeniu sobie exela/calca (zwał jak zwał)

Przy okazji czy pliki z OpenOffice-a są otwierane bez problemu przez pakiet microshitu ? nie buguje się nic nie przemieszcza? Pytam z czystej ciekawości bo po przesiadce na linuxa mam sporo nie jasności :P
LibreOffice 7.0.5.2 / Manjaro
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Ignorowanie tekstu

Post autor: Jan_J »

exela/calca (zwał jak zwał)
„Rower” to nazwa pospolita, choć wywodzi się z nazwy firmy.
Co do klasy software'u najbezpieczniej mówić „arkusz kalkulacyjny”.

Teoretycznie Excel czyta pliki .ods. Z komórkami i formułami nie powinno być problemu, o ile używane w nich funkcje są obsługiwane przez oba pakiety. W praktyce pełna obsługa .ods nie jest w interesie producentów Excela.

Teoretycznie LibreOffice czyta i generuje skoroszyty .xlsx. Obsługa również nie jest pełna, ale na poziomie zawartości komórki, z formułami włącznie, problemu nie ma, o ile nie używa się funkcji wbudowanych tylko w jeden pakiet (lub różniących się sposobem użycia).

Powszechnie występują problemy z utrzymaniem zgodności zaawansowanego formatowania dokumentów, obsługi dużych obszarów (sięgających maksymalnej liczby wierszy / kolumn), użycia narzędzi nie opartych na formułach (niektóre filtry, tabele przestawne, solvery itp.), a przede wszystkim użycia makropoleceń: krótkich programów automatyzujących pracę.

PS. część — ale tylko część — tych powszechnie raportowanych niezgodności jest spowodowana nie tyle różnicą między pakietami, co różnicą konfiguracji systemów, np. dostępnością fontów deklarowanych w dokumentach.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Fiszek
Posty: 4
Rejestracja: wt kwie 27, 2021 7:57 pm

Re: Ignorowanie tekstu

Post autor: Fiszek »

Jan_J pisze:
exela/calca (zwał jak zwał)
„Rower” to nazwa pospolita, choć wywodzi się z nazwy firmy.
Co do klasy software'u najbezpieczniej mówić „arkusz kalkulacyjny”.

Teoretycznie Excel czyta pliki .ods. Z komórkami i formułami nie powinno być problemu, o ile używane w nich funkcje są obsługiwane przez oba pakiety. W praktyce pełna obsługa .ods nie jest w interesie producentów Excela.

Teoretycznie LibreOffice czyta i generuje skoroszyty .xlsx. Obsługa również nie jest pełna, ale na poziomie zawartości komórki, z formułami włącznie, problemu nie ma, o ile nie używa się funkcji wbudowanych tylko w jeden pakiet (lub różniących się sposobem użycia).

Powszechnie występują problemy z utrzymaniem zgodności zaawansowanego formatowania dokumentów, obsługi dużych obszarów (sięgających maksymalnej liczby wierszy / kolumn), użycia narzędzi nie opartych na formułach (niektóre filtry, tabele przestawne, solvery itp.), a przede wszystkim użycia makropoleceń: krótkich programów automatyzujących pracę.
Dziękuję za wyjaśnienie

A drążąc dalej trochę temat skoro jest opcja żeby Calc brał 3 pierwsze znaki pod uwagę to nie ma żeby ignorował jakąś ilość znaków od końca w komórce? :crazy: :ouch:
LibreOffice 7.0.5.2 / Manjaro
Awatar użytkownika
Jermor
Posty: 2252
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Ignorowanie tekstu

Post autor: Jermor »

W programie Calc LibreOffice, w tej wersji, jaką posiadasz, jest jeszcze jedna funkcja, której możesz użyć. W tym przypadku nie ma znaczenia ile cyfr ma liczba i czy jest poprzedzona jakimiś znakami. W twoim przykładzie możesz zastosować formułę:

Kod: Zaznacz cały

=REGEX(A2;"[:number:]{1,}")-REGEX(A1;"[:number:]{1,}")
Jeżeli wstawiona liczba zawiera część ułamkową, formułę należałoby rozbudować do takiej postaci:

Kod: Zaznacz cały

=REGEX(A2;"[:number:]{1,}(,[:number:]{1,})*")-REGEX(A1;"[:number:]{1,}(,[:number:]{1,})*")
O funkcji REGEX możesz przeczytać tu: https://forum.openoffice.org/pl/forum/v ... f=4&t=5513
O wyrażeniach regularnych w helpie programu.
Te drugą formułę można zapisać trochę prościej:

Kod: Zaznacz cały

=REGEX(A2;"[:number:]+(,[:number:]+)*")-REGEX(A1;"[:number:]+(,[:number:]+)*")
Dodatkowe wyjaśnienie: REGEX zwraca wynik w postaci ciągu tekstowego. Calc potrafi wykonać działanie arytmetyczne na ciągach tekstowych wyglądających jak liczby i tworzy wynik liczbowy.
Jeszcze jedna modyfikacja. Tym razem taka, która tylko jeden (pierwszy) przecinek po cyfrze uzna za znak dziesiętny i zignoruje ewentualne następne przecinki i kolejne cyfry.

Kod: Zaznacz cały

=REGEX(A2;"[:number:]+(,[:number:]+)?")-REGEX(A1;"[:number:]+(,[:number:]+)?")
Ostatnio zmieniony śr kwie 28, 2021 2:04 pm przez Jermor, łącznie zmieniany 3 razy.
Powód: Podałem zmodyfikowana formę formuły.
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.
Fiszek
Posty: 4
Rejestracja: wt kwie 27, 2021 7:57 pm

Re: Ignorowanie tekstu

Post autor: Fiszek »

Dziękuję bardzo
LibreOffice 7.0.5.2 / Manjaro
ODPOWIEDZ