Dzieje się tak dlatego, że formuła SZUKAJ.TEKST() zwraca wartość błędu "#ARG!" gdy tekstu nie znajdzie.
Czyli jeżeli jest wpisane "jabłko" pierwsze JEŻELI() wstawia "3101", gdy wpisana jest "gruszka" to pierwsze JEŻELI()zwraca "#ARG!". Każda formuła, której element jest błędem automatycznie zwraca błąd. Aby to zadziałało formuła powinna wyglądać tak:
Kod: Zaznacz cały
=JEŻELI(CZY.BŁĄD(SZUKAJ.TEKST("jabłko";B35));JEŻELI(CZY.BŁĄD(SZUKAJ.TEKST("gruszka";B35));"brak";"3102");"3101")
Przy okazji tej formuły znowu kłania się LIbreOffice, który w zasobach funkcji ma JEŻELI.BŁĄD() co znacznie uprościłoby formułę.
Kilka lat temu z powodu twoich pytań napisałem funkcję użytkownika GDZIEJEST() opisaną tu:
viewtopic.php?t=5167
Podaje ona pozycję poszukiwanego ciągu w innym ciągu i zwraca 0, gdy poszukiwany ciąg nie występuje. Wykorzystując tę funkcję i funkcję WYBIERZ() możesz wykorzystać taką formułę:
Kod: Zaznacz cały
=WYBIERZ((GDZIEJEST("jabłko";B35)<>0)+2*(GDZIEJEST("gruszka";B35)<>0)+1;"brak";"3101";"3102")
Ten fragment formuły (GDZIEJEST("jabłko";B35)<>0)+2*(GDZIEJEST("gruszka";B35)<>0)+1 wylicza indeks dla funkcji WYBIERZ().
Ponieważ nie wiem, czy słowa "jabłko" i "gruszka" są jedynymi słowami w komórce B35, czy też mogą występować w treści komórki np. "duże jabłko", to indeks wyznaczany jest w ten sposób. Gdyby komórka zawierała wyłącznie pojedyncze wyrazy, to wyznaczanie indeksu może być prostsze, gdyż wtedy dla znalezionego słowa zwracana jest wartość 1. Zasada jest taka sama. Jeśli w komórce nie występuje słowo "jabłko" lub "gruszka" obie funkcje zwracają 0, do którego jest dodawana stała o wartości 1, gdyż indeks dla funkcji WYSZUKAJ() musi zaczynać się od 1, gdy znajdzie "jabłko" wynikiem będzie jakaś liczba, zatem wyrażenie logiczne będzie prawdziwe, dając wartość 1 a po dodaniu stałej przyjmie wartość 2 (druga część tego wyrażenia zwróci 0, bo już wystąpiło "jabłko"). W przypadku "gruszki" wynik PRAWDA jest mnożony przez 2 a po dodaniu stałej otrzymuje wartość 3. ,Trzy ostatnie argumenty funkcji WYBIERZ(), to odpowiedź na wyliczony indeks tej funkcji.