Błędny wynik w funkcji JEŻELI

Użytkowanie arkusza kalkulacyjnego
Gokus
Posty: 1
Rejestracja: śr maja 25, 2016 10:57 pm

Błędny wynik w funkcji JEŻELI

Post autor: Gokus »

Witam, mam problem z użyciem funkcji JEŻELI.
Próbuje ją wykorzystać tak jak widać na załączonym zrzucie ekranu, tj. chce aby funkcja sprawdzała, czy wartość wskazanej komórki zawiera się we wskazanym przedziale.
Na screenshocie które zamieściłem widać, że coś jest nie tak. Warunek jaki dałem to: 5>L49>1, gdzie L49 = 3. Wynik to fałsz, mimo że przecież 5>3 i 3>1.
Co jest nie tak?
Załączniki
Screenshot_2.png
LibreOffice 5.0.0.5 / Windows 10
arras_1
Posty: 148
Rejestracja: czw lip 19, 2012 8:08 pm

Re: Błędny wynik w funkcji JEŻELI

Post autor: arras_1 »

Może dołożyć funkcję I
=JEŻELI(I(5>L49;L49>1);"tak";"nie")
OpenOffice.org 4.1.3 , Windows 10
Jan_J
Posty: 4657
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Błędny wynik w funkcji JEŻELI

Post autor: Jan_J »

W "papierowej" notacji matematycznej b > x > a jest skrótem wyrażenia (b > x) and (x > a). W oprogramowaniu bywa inaczej. Operator > w arkuszu jest prawostronnie łączny, czyli Calc rozumie b > x > a jako b > (x>a). Obliczenie nawiasu daje wartość logiczną, która jako (0|1) jest porównywalna z b. Ot i przyczyna problemu: język formalny to nie język potoczny, znaczenia bywają inne.

Zamiast konunkcji I(b>x;x>a) możesz też stosować analizę znaku trójmianu kwadratowego (x-a)*(x-b)<0. Koniunkcja da Ci wartość zdania "x należy do wnętrza przedziału o początku a i końcu b", zaś sprawdzenia znaku trójmianu mówi, czy "x należy do wnętrza przedziału o końcach a i b". Te dwa warianty są równoważne tylko w przypadku, gdy a jest mniejsze niż b.
JJ
LO (26.2|26.8) ∙ Python (3.14|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ