[SOLVED]JEŻELI(LICZ.JEŻELI błędny wynik

Użytkowanie arkusza kalkulacyjnego
NameLessOne
Posty: 2
Rejestracja: pt sie 31, 2018 11:13 am

[SOLVED]JEŻELI(LICZ.JEŻELI błędny wynik

Post autor: NameLessOne »

Cześć

Do pracy potrzebuję przepisać do nowej komórki wartość zależnie od spełnienia warunku *OTLT w nazwie.

Skorzystałem z poradnika dla M$ Exel i warunek nie działa (zawsze zwraca Fałsz). Formułę sprawdziłem w dokumentach Google i działa (co prawda arkusz sam sobie prze-konwertował funkcje na angielską wersję).

Możecie mi podpowiedzieć co robię nie tak? Zamieszczam Screen z Libre Calc 5.2.5.1 (niestety nowsza wersja nie działa z czcionką tekstil care, więc musiałem zaprzestać aktualizacji).

Obrazek
Ostatnio zmieniony śr wrz 05, 2018 1:08 pm przez NameLessOne, łącznie zmieniany 1 raz.
LibreOffice 5.2.5.1
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: JEŻELI(LICZ.JEŻELI błędny wynik

Post autor: Jermor »

Co robisz nie tak?
W LibreOffice Calc występują dwa sposoby wyszukiwania fragmentów ciągów.
  • Symbole wieloznaczne w formułach: są one zgodne z konwencją MS Office. Znak "*" oznacza dowolne znaki.
  • Wyrażenia regularne w formułach: związane z LibreOffice i Apache OpenOffice, w nich "dowolne znaki" określa się dwoma symbolami ".*". Kropka oznacza jeden dowolny znak a gwiazdka - zero lub więcej powtórzeń tego znaku.
Jaki sposób ma zostać zastosowany określają opcje programu Calc. W tym przypadku opcję Calc należy ustawić na "Włącz symbole wieloznaczne w formułach". (Narzedzia -> Opcje -> Calc -> Oblicz")
Zadanie można jednak wykonać prościej, nie odwołując się do wyrażeń z symbolami wieloznacznymi lub wyrażeń regularnych.
W komórce F3 można wstawić formułę

Kod: Zaznacz cały

=JEŻELI.BŁĄD(0*ZNAJDŹ("OLT";LITERY.WIELKIE(A3))+D3;C3)
Funkcja ZNAJDŹ szuka ciągu OLT w komórce A3, rozróżniając wielkość liter. Dlatego ciąg z komórki A3 jest najpierw przekształcony na wielkie litery. Nie wiadomo jak zostanie wpisany ten tekst.
Funkcja ZNAJDŹ zwraca numer znaku od którego w ciągu A3 zaczyna się poszukiwany ciąg. Jeśli ciąg nie występuje, zwracany jest błąd.
Dlatego zastosowałem funkcję JEŻELI.BŁĄD, która oblicza pierwszy swój argument i jeśli obliczenie nie prowadzi do błędu, to wylicza go. Gdy obliczenie argumentu prowadzi do błędu - zwraca drugi argument.
Jeśli obliczenie argumentu nie prowadzi do błędu, to ZNAJDŹ zwraca jakąś liczbę, najmniejsza to 1, mnożę tę liczbę przez zero aby nie wpływała na potrzebny rezultat i dodaję do niej wartość D3.
Dopisuję uwagę:
Funkcji JEŻELI.BŁĄD nie ma w Apache OpenOffice , w tej wersji (i w LibreOffice także) można skorzystać z następującej formuły:

Kod: Zaznacz cały

=JEŻELI(CZY.BŁĄD(ZNAJDŹ("OLT";LITERY.WIELKIE(A3)));C3;D3)
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.
NameLessOne
Posty: 2
Rejestracja: pt sie 31, 2018 11:13 am

Re: JEŻELI(LICZ.JEŻELI błędny wynik

Post autor: NameLessOne »

Wielkie dzięki, sprawę rozwiązało zaznaczenie opcji "Włącz symbole wieloznaczne w formułach".

Zgodność z konwencją M$ Office gwarantuje obszerniejszy dostęp do poradników w sieci.
LibreOffice 5.2.5.1
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: JEŻELI(LICZ.JEŻELI błędny wynik

Post autor: Jan_J »

NameLessOne pisze:Zgodność z konwencją M$ Office gwarantuje obszerniejszy dostęp do poradników w sieci.
Zgodność z Regular Expression daje łączność z kilkudziesięcioma latami kultury informatycznej.

// IMO "oni" opracowali własne symbole wieloznaczne m.in. po to (choć nie tylko), żeby załamać ciągłość standardów i narzucić własne. Ot, dobra zmiana.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ