Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
Witam.
Mam mały problem funkcja jeżeli bierze pod uwagę tylko wartości z wyrażenia logicznego czyli mamy tylko w wyniku prawda i fałsz.
A ja potrzebuję mieć możliwość wyboru jeśli
A=0 B=0 to
A=0 B=1 to
A=1 B=0 to
A=1 B=1 to
Mam mały problem funkcja jeżeli bierze pod uwagę tylko wartości z wyrażenia logicznego czyli mamy tylko w wyniku prawda i fałsz.
A ja potrzebuję mieć możliwość wyboru jeśli
A=0 B=0 to
A=0 B=1 to
A=1 B=0 to
A=1 B=1 to
OpenOffice 4.1.13 na Windows 7
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
Toż są spójniki logiczne
AND(p;q) czyli I(p;q) a może ORAZ(p;q), nie pamiętam;
OR(p;q) czyli LUB(p;q),
NOT(p) czyli NIE(p)
które można zagnieżdżać w warunkach, np. =IF(AND(p;q); "oba są tak"; "któryś jest nie")
albo posługiwać się analogią TRUE ~ 1 (ostrożnie przy LUB, bo 1+1 jest 2), FALSE ~ 0
=IF((p=1)*(q=1); "oba są tak"; "któryś jest nie)"
AND(p;q) czyli I(p;q) a może ORAZ(p;q), nie pamiętam;
OR(p;q) czyli LUB(p;q),
NOT(p) czyli NIE(p)
które można zagnieżdżać w warunkach, np. =IF(AND(p;q); "oba są tak"; "któryś jest nie")
albo posługiwać się analogią TRUE ~ 1 (ostrożnie przy LUB, bo 1+1 jest 2), FALSE ~ 0
=IF((p=1)*(q=1); "oba są tak"; "któryś jest nie)"
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
Nie chodzi mi o nazewnictwo operatorów logicznych
Chodzi mi o coś w stylu funkcji switch ... case z programowania
{
case (A=0 i B=0):
Wyświetl w komórce ""
break;
case (A=0 i B=1 ):
Wyświetl komunikat " Nie podałeś wartości w poprzednim wierszu"
break;
//...
case (A=1 i B=0) :
Nie wyświetlaj żadnej wartości
break;
default (A=1 i B=1):
Wyświetl numer porządkowy A1+1
break;
}
Jeszcze jedno
Czy w komórce np B5 mogę umieścić funkcje która nada wartość komórce C5?
Chodzi mi o coś w stylu funkcji switch ... case z programowania
{
case (A=0 i B=0):
Wyświetl w komórce ""
break;
case (A=0 i B=1 ):
Wyświetl komunikat " Nie podałeś wartości w poprzednim wierszu"
break;
//...
case (A=1 i B=0) :
Nie wyświetlaj żadnej wartości
break;
default (A=1 i B=1):
Wyświetl numer porządkowy A1+1
break;
}
Jeszcze jedno
Czy w komórce np B5 mogę umieścić funkcje która nada wartość komórce C5?
OpenOffice 4.1.13 na Windows 7
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
To było C. W Pythonie nie ma switch; jest
co z jednej strony działa jak switch wielopozycyjny, z drugiej może być rozumiane -- a przynajmniej emulowane -- jako sekwencja zagnieżdżonych warunków.
=jeżeli(blabla; miau; jeżeli(kukukuku; hau; kukuryku))
To tylko jedna z możliwości. Do pewnego stopnia da się taki złożony układ rozbić na zespół komórek. Ale to nie będzie całkiem równoważne w pełnej ogólności -- choć w poszczególnych przypadkach może być.
Kod: Zaznacz cały
if blablabla:
miau
elif kukukuku:
hau
else:
kukuryku
=jeżeli(blabla; miau; jeżeli(kukukuku; hau; kukuryku))
To tylko jedna z możliwości. Do pewnego stopnia da się taki złożony układ rozbić na zespół komórek. Ale to nie będzie całkiem równoważne w pełnej ogólności -- choć w poszczególnych przypadkach może być.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
Więc składnia wygląda tak
JEŻELI (jakieś wyrażenie jest prawdziwe, to wykonaj określone działanie, a w przeciwnym razie wykonaj inne działanie)
JEŻELI (Warunek, Jeśli prawda to, Jeśli fałsz to)
A=0 B=0 to
A=0 B=1 to
A=1 B=0 to
A=1 B=1 to
JEŻELI (A, Jeśli prawda to, Jeśli fałsz to)
JEŻELI (A, JEŻELI (B, Jeśli prawda to, Jeśli fałsz to), JEŻELI (B, Wyświetl komunikat " Nie podałeś wartości w poprzednim wierszu", Wyświetl w komórce ""))
JEŻELI (A, JEŻELI (B, Wyświetl numer porządkowy A1+1, Nie wyświetlaj żadnej wartości), JEŻELI (B, Wyświetl komunikat " Nie podałeś wartości w poprzednim wierszu", Wyświetl w komórce ""))
Lekka masakra w czytelności.
A jak wyświetlić komunikat? Potrzebuję podać informację o nie uzupełnieniu komórki wyżej.
JEŻELI (jakieś wyrażenie jest prawdziwe, to wykonaj określone działanie, a w przeciwnym razie wykonaj inne działanie)
JEŻELI (Warunek, Jeśli prawda to, Jeśli fałsz to)
A=0 B=0 to
A=0 B=1 to
A=1 B=0 to
A=1 B=1 to
JEŻELI (A, Jeśli prawda to, Jeśli fałsz to)
JEŻELI (A, JEŻELI (B, Jeśli prawda to, Jeśli fałsz to), JEŻELI (B, Wyświetl komunikat " Nie podałeś wartości w poprzednim wierszu", Wyświetl w komórce ""))
JEŻELI (A, JEŻELI (B, Wyświetl numer porządkowy A1+1, Nie wyświetlaj żadnej wartości), JEŻELI (B, Wyświetl komunikat " Nie podałeś wartości w poprzednim wierszu", Wyświetl w komórce ""))
Lekka masakra w czytelności.
A jak wyświetlić komunikat? Potrzebuję podać informację o nie uzupełnieniu komórki wyżej.
OpenOffice 4.1.13 na Windows 7
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
Bo arkusze formuł nie zostały pomyślane jako wygodne środowiska programowania interfejsu.
Raczej jako proste środowiska do tworzenia automatycznie przeliczających się prostych dokumentów.
Jest też możliwość ponumerowania komunikatów, zapisania ich gdzieś na boku i wyłuskania za pomocą funkcji INDEKS. Trzeba by wtedy mieć wyrażenie przeliczające układ warunków na liczbę.
Na przykład
A1:A4
OK
Nie podano nazwiska
Nie podano adresu e-mail
Wypełnij oba pola
B1: nazwisko do wpisania
B2: email do wpisania
B3: =INDEKS(A1:A4, (B1="") + 2*(B2="") + 1)
Magiczna formuła (B1="") + 2*(B2="") + 1 odzworowuje wszystkie możliwe układy 2 wartości logicznych (0,0), (1,0), (0,1), (1,1) na liczby całkowite 1, 2, 3, 4, będące numerami porządkowymi komunikatów umieszczonych w kolumnie A.
Raczej jako proste środowiska do tworzenia automatycznie przeliczających się prostych dokumentów.
Jest też możliwość ponumerowania komunikatów, zapisania ich gdzieś na boku i wyłuskania za pomocą funkcji INDEKS. Trzeba by wtedy mieć wyrażenie przeliczające układ warunków na liczbę.
Na przykład
A1:A4
OK
Nie podano nazwiska
Nie podano adresu e-mail
Wypełnij oba pola
B1: nazwisko do wpisania
B2: email do wpisania
B3: =INDEKS(A1:A4, (B1="") + 2*(B2="") + 1)
Magiczna formuła (B1="") + 2*(B2="") + 1 odzworowuje wszystkie możliwe układy 2 wartości logicznych (0,0), (1,0), (0,1), (1,1) na liczby całkowite 1, 2, 3, 4, będące numerami porządkowymi komunikatów umieszczonych w kolumnie A.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
Wykorzystując magiczną formułę @Jan_J można użyć funkcji WYBIERZ
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.
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.
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
Ba!Jermor pisze:Wykorzystując magiczną formułę @Jan_J można użyć funkcji WYBIERZ
Choose, Wybierz
Nie zabija piękna magicznych formuł obliczających indeksy w tablicach na podstawie ich rozwinięć dwójkowych otrzymanych z ciągu warunków.
Podobna, ale nawet lepsza od indeks, bo ewaluuje tylko argument wskazany przez selektor. Podczas gdy indeks pracuje na ciągu przygotowanych uprzednio wartości.
Jednocześnie trochę gorsza przez excelowate ograniczenie liczby argumentów do 30.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)