Strona 1 z 1
Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
: śr lut 07, 2018 5:13 pm
autor: KoalaG
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
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
: śr lut 07, 2018 5:23 pm
autor: Jan_J
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)"
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
: śr lut 07, 2018 7:21 pm
autor: KoalaG
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?
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
: śr lut 07, 2018 9:45 pm
autor: Jan_J
To było C. W Pythonie nie ma switch; jest
Kod: Zaznacz cały
if blablabla:
miau
elif kukukuku:
hau
else:
kukuryku
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ć.
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
: śr lut 07, 2018 11:05 pm
autor: KoalaG
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.
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
: śr lut 07, 2018 11:56 pm
autor: Jan_J
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.
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
: czw lut 08, 2018 11:31 am
autor: Jermor
Wykorzystując magiczną formułę @Jan_J można użyć funkcji WYBIERZ
Re: Zawansowana funkcja Jeżeli. Funkcja wyboru kilku wyników
: pt lut 09, 2018 1:22 am
autor: Jan_J
Jermor pisze:Wykorzystując magiczną formułę @Jan_J można użyć funkcji WYBIERZ
Ba!
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.