Jak zastąpić wiele JEŻELI jednym WYBIERZ?
Zamiast wielu JEŻELI jedno WYBIERZ — porada #166
Czasami korzysta się z zagnieżdżania funkcji JEŻELI. W pewnych sytuacjach nie ma innej możliwości i tak trzeba postępować, ale czasami można wiele zagnieżdżeń JEŻELI zastąpić jedną funkcją WYBIERZ.
Przykładowo mamy oceny dla pracowników A – Świetny, B – Średni, C – Słaby i D – Do zwolnienia. Zagnieżdżone funkcje JEŻELI mogą posłużyć do wybrania opisu na podstawie oceny:
=JEŻELI(B2="A";"Świetny";JEŻELI(B2="B";"Średni";JEŻELI(B2="C";"Słaby";JEŻELI(B2="D";"Do zwolnienia"))))
Ale wystarczy wiedzieć, że możesz literę zamienić na jej KOD, czyli odpowiadającą jej liczbę i da się to skrócić do jednej funkcji WYBIERZ. Wynik KOD("A")=65.
=WYBIERZ(KOD(B2)-64;"Świetny";"Średni";"Słaby";"Do zwolnienia")
Tak w pewnych sytuacjach wiele funkcji JEŻELI można zastąpić jedną funkcją WYBIERZ.
P.S.
Jeśli chcesz dowiedzieć się więcej na temat Excela lub nie wiesz jak coś zrobić to napisz do mnie. Ja w miarę możliwości odpowiem na Twoje pytanie.
Bezpośredni odnośnik do filmu na youtube — Zamiast wielu JEŻELI jedno WYBIERZ — porada #166
Jak zastąpic taką funkcję =JEŻELI($A$1=A30;A31;JEŻELI($A$1=C30;C31;"itd…"))
tam gdzie cudzyslow kolejne jezeli i tak 15x funkcja jezeli dziala fajnie ale chce ja skrocic.
Najpewniej funkcją WYSZUKAJ.PIONOWO, a może WYSZUKAJ.POZIOMO, która szuka wartości z komórki A1 w pomocniczej tabeli, gdzie w pierwszej kolumnie/wierszu są te wartości do których porównujesz, a dalej są wartości, które chcesz znaleźć.
Może prześlę arkusz i zobaczy pan o co mi konkretnie chodzi bo kombinuję juz kilka dni i nie mogę wykombinować przesle panu mailem plik
Mail powinieneś widzieć na górze strony, ale dla pewności adam(at)exceliadam.pl
Dzięki wielkie za pomoc 🙂
Witam, szukam rozwiązania problemu na którym się zaciąlem. Chodzi mi o możliwość porównania kolumn, gdzie moze wystąpić kombinacja warunków, dla których zwracane powinny być inne wartośći. Np. Jesli liczba w A1 >0 i B1>0 wtedy = 1, jesli A1>0 b1<0 wtedy 2, jesli A1 0 wtedy 3, jesli a1 ,0 b1,0 wtedy 4 itd. Jest jakiś prosty sposób na to?
W miarę proste może być jak masz już funkcję WARUNKI:
https://www.youtube.com/watch?v=66U698WuEgQ
Jeśli jej nie masz to musisz rozpisać wszystkie warunki i ich wyniki i przekładać na zagnieżdżone JEŻELI.
Cześć,
mam coś takiego:
=IF(C3="mrożonka warzywna";INDEX({"orientalna";"hiszpańska";"francuska";"ziemniaczana"};ROUNDDOWN(RAND()*4+1;0)));IF(C3="mięso wołowe";INDEX({"zrazy";"bitki";"burgery";"gulasz"};ROUNDDOWN(RAND()*4+1;0)));IF(C3="mięso wieprzowe";INDEX({"szarpana";"karkówka z grilla";"mielone";"klopsy"};ROUNDDOWN(RAND()*4+1;0)));IF(C3="mięso drobiowe";INDEX({"kotlet";"rollo";"smażone";"piersi z kurczaka"};ROUNDDOWN(RAND()*4+1;0)))
niestety za każdym razem zwraca mi błąd, nie potrafie tego rozkminić, funkcja losująca musi pozostać
Trzeba odpowiednio zagnieździć funkcje — nawiasy nie były w prawidłowych miejscach:
'=IF(C3="mrożonka warzywna";INDEX({"orientalna";"hiszpańska";"francuska";"ziemniaczana"};ROUNDDOWN(RAND()*4+1;0));IF(C3="mięso wołowe";INDEX({"zrazy";"bitki";"burgery";"gulasz"};ROUNDDOWN(RAND()*4+1;0));IF(C3="mięso wieprzowe";INDEX({"szarpana";"karkówka z grilla";"mielone";"klopsy"};ROUNDDOWN(RAND()*4+1;0));IF(C3="mięso drobiowe";INDEX({"kotlet";"rollo";"smażone";"piersi z kurczaka"};ROUNDDOWN(RAND()*4+1;0))))))
Tak, a co, jeśli mam coś takiego: =SUMA(JEŻELI(ORAZ(B6="a";NIE(A6="b"));1;0);JEŻELI(ORAZ(C6="a";NIE(B6="b"));1;0);JEŻELI(ORAZ(D6="a";NIE(C6="b"));1;0)… i tak 20 razy, to da się to jakoś skrócić? Bo działać to działa, ale trochę słabo to tak wpisywać. Jak można zauważyć chodzi o to, żeby dodawało 1 za każde pole z 'a', ale pod warunkiem, że w polu wcześniejszym nie było 'b'.
Tak, a co, jeśli mam coś takiego: =SUMA(JEŻELI(ORAZ(B6="a";NIE(A6="b"));1;0);JEŻELI(ORAZ(C6="a";NIE(B6="b"));1;0);JEŻELI(ORAZ(D6="a";NIE(C6="b"));1;0)… i tak 20 razy, to da się to jakoś skrócić? Bo działać to działa, ale trochę słabo to tak wpisywać.Jak można zauważyć chodzi o to, żeby dodawało 1 za każde pole z 'a', ale pod warunkiem, że w polu wcześniejszym nie było 'b'.
Poniższa formuła powinna działać:
=LICZ.WARUNKI($D$4:$J$4,"a",$C$4:$I$4,">b")
"b" ma być różne, ale nie koniecznie widać to w komentarzu.
Podkreślam, że jest przesunięcię pomiędzy zakresami.
aj, próbowałem wcześniej tej metody, ale coś źle musiałem chyba zrobić, bo mi jakieś błędy same wyskakiwały, ale teraz już działa. Tylko musiałem zamiast ">b" dać "b", bo mi wszystkiego nie zliczało. W każdym razie dziękuję za pomoc! 🙂
Dzien Dobry,
Jeżeli to możliwe proszę o pomoc z tym przypadkiem:
=JEŻELI(B2=2000;"32%";JEŻELI(B2>=4000;"36%"))), chodzi o rozgraniczenie tych widełek 0–2000=30%, 2000–4000=34%, 4000–10000=36%, 100002000, a nie >4000
34 % — 2000zł netto
36 % — 4000zł netto
38 % — 10 tyś netto
Z opisu wygląda na podział według progów, a to najszybciej rozwiązuje się za pomocą wyszukiwania przybliżonego:
https://www.youtube.com/watch?v=gS-yF-0xTJ8