•  

    Magicy z #excel jest wyzanie :) Tym razem nie prosze o pomoc ktora mi sie przyda w robocie ale taki challenge z czystej ciekawosci i checi dowiedzeia sie czegos nowego. Wiec jak kogos znudzilem moimi poprzednimi pytaiami to moze olac. This is for fun and knowledge :P

    Jakis miras pytal o drabinke z mundialu do wydrukowania. To se pomyslalem ze zrobie se w excelu. Wyglada (poki co jesem na etapie fazy grupowej) picrel.

    I teraz o co mi chodzi (ale najpierw legenda)
    M-rozegrane mecze
    Z-zwyciestwa
    R-remisy
    P-porazki
    BZ-bramki zdobyte
    BS-bramki stracone
    BB-bilans bramek
    P-punkty

    I teraz chodzi mi o to czy da sie tak to zautomatyzowac ze wpisujac wynik po prawej to sie bedzie samo wypelniac? Jesli chodzi o bramki to pan pikus - zrobione.

    Ale ilosc meczy, punktow itp to juz wymaga pewnego "ifa". "Ifow" sie nie boje. Tylko czy w excelu da sie zrobic jakas formule? makro? czy jak to sie tam zwie w ten sposob:

    Jesli w komorce X jest wartosc >0 to w komorce Y wpisz wartosc Z
    Jesli w komorce X jest wartosc <0 to w komorce Y wpisz wartosc A
    Jesli w komorce X jest wartosc =0 to w komorce Y wpisz wartosc B

    I czy da sie "laczyc ify"? Czyli "jesli w komorce Z jest A i/lub w komorce Y jest B To w komorce Z wpisz C.

    Jak to sie da to powinienem sobie poradzic. Pewno malo optymalnie ale dzialac bedzie. Pytanie tylko czy cos takiego sie da.

    źródło: Screenshot_1177.jpg

    •  

      @gorzki99: nie wnikajac w problem, tylko w zadane pytanie: tak, da sie.
      po prostu jeden IF jest parametrem drugiego:
      IF (costam, wynik1, IF(cosinnego, wynik2, wprzecwicnymraziewynik3))

      i wystarcza 2 IFy do 3 warunkow, bo skoro zaden z pierwszych 2 nie jest spelniony (np > i <) to zostaje tylko trzecia opcja (=) wiec trzeciego IF nie potrzeba.

      co do drugiej czesci, to sprawdz funkcje OR oraz AND
      OR(warunek1, warunek2....)
      AND (warunek1, warunek2...)
      obie zwracaja prawda lub falsz, wiec moga byc warunkiem funkcji IF
      IF(AND(warunek1,warunek2...),wartoscprawda, wartoscfalsz)

    •  

      @taju: okaj. To teraz pozostaje mi googlowanie jaka jest skladnia :P

      Bo nie wierze zeby to bylo takie latwe "if a1>0; a3=1" :P

    •  

      Jesli w komorce X jest wartosc >0 to w komorce Y wpisz wartosc Z
      Jesli w komorce X jest wartosc <0 to w komorce Y wpisz wartosc A
      Jesli w komorce X jest wartosc =0 to w komorce Y wpisz wartosc B


      @gorzki99:

      w komorce Y wpisujesz:
      =IF(X>0, Z, IF(X<0, A, B))
      gdzie X to adres twojej komorki X, a Z A B to tez adresy odpowiednich komorek albo wartosci wpisane (ewentualnie ; zamiast , zaleznie od wersji jezykowej)

      I czy da sie "laczyc ify"? Czyli "jesli w komorce Z jest A i/lub w komorce Y jest B To w komorce Z wpisz C.
      tak nie rob formulami, bo odwolujesz sie do komorki Z jako zrodla i wyniku danych ponadto "i/lub" nie ma zadnego sensu tu chyba... bo jesli i to nie lub

      natomiast:
      "jesli w komorce Z jest A lub w komorce X jest B To w komorce Y wpisz C.
      wtedy w komorce Y:
      =IF(OR(Z=A, X=B), C, 0)

      albo
      "jesli w komorce Z jest A i w komorce X jest B To w komorce Y wpisz C.
      wtedy w komorce Y:
      =IF(AND(Z=A, X=B), C, 0)

    •  

      takie latwe "if a1>0; a3=1" :P

      @gorzki99: i nie jest, bo IF nie zmienia innych komorek, tylko zwraca wynik w komorce, w ktorej go wpiszesz

    •  

      @taju: OK. Zamysl byl taki:

      w p2 wpisuje ifa. Jesli wpisze cokolwiek >=0 w l2 (mecz sie odbyl) to w p2 a sie pojawic 1 (przypisane z r1)

      A tu lipa :P

      źródło: Screenshot_1178.jpg

    •  

      @gorzki99: popatrz na nawiasy gdzie sa w funkcjach...
      =IF(warunek, wartoscprawda, wartoscfalsz)
      a ty tu co robisz
      =IF(warunek), costam

    •  

      popatrz na nawiasy gdzie sa

      @taju: ok a teraz?

      źródło: Screenshot_1179.jpg

    •  

      @gorzki99: albo zamiast się bawić w zagnieżdżanie IF - użyj IFS albo SWITCH (po polsku WARUNKI albo PRZEŁĄCZ)

      +: taju
    •  

      @Polinik: masz racje, ale moze najpierw podstawowy IF a potem IFS :D

    •  

      @Polinik: bo gosc nie ogarnia nawiasow i ;/, ?

    •  

      albo zamiast się bawić w zagnieżdżanie IF - użyj IFS albo SWITCH (po polsku WARUNKI albo PRZEŁĄCZ)

      @Polinik: NIe pomagasz :P W excelu to a potrafie robic tabele przestawne i uwazam to a mega osiagniecie :PP

      Natomiast cos tam sie w c++ bawilem. Ify mnie nie przerazaja tylko musze znac wytyczne co do skladni (gdzie przecinki, nawiasy, redniki itp) a excela znam wcale :P

    •  

      @taju: no i? Jak użyje jednej funkcji zamiast składać dwie to nie będzie problemu z nawiasami.

    •  

      @gorzki99: ziom, możesz się bawić w składanie funkcji warunkowej analizującej tylko PRAWDA-FAŁSZ, żeby obsłużyć kilka możliwych wartości albo od razu użyć funkcji warunkowej stworzonej do obsługi kilku wartości.

      W C++ też rzeźbisz naokoło, zamiast użyć najprostszego możliwego rozwiązania?

    •  

      W C++ też rzeźbisz naokoło, zamiast użyć najprostszego możliwego rozwiązania?

      @Polinik: Jeszcze raz. W C++ sie bawilem a nie pracowalem. Hobbystycznie. Wazne bylo ze dzialalo a nie jak dzialalo bo to co se pisalem bylo na moj uzytek. Korzystajac z takiej a nie innej wiedzy ktora w temacie posiadam.

      Tak - robilem na okolo bo mi to nie przeszkadzalo. Tu mi tez przeszkadzac nie bedzie. NIe potrzebuje optymalizacji pamieci i odsyskania jednego wiecej megabajta pamieci. Ma dzialac.

    •  

      @gorzki99: A proste w użyciu IFS nie zadziała bo? XD

      Eh, człowiek chce pomóc, podsuwa najprostsze rozwiązanie, stworzone dokładnie do tego, co chcesz osiągnąć, z prostym kreatorem do wykliknia w okienku składowych funkcji - a w zamian pretensje.

      Rób jak chcesz, chcesz sobie komplikować - komplikuj.

    •  

      @gorzki99:
      tak IFS bedzie najprostsze, jak mowi @Polinik:
      ale ogarnij najpierw jednego IFa z jednym warunkiem. I potem ostatecznie zrob IFS :)

    •  

      A proste w użyciu IFS nie zadziała bo? XD

      Eh, człowiek chce pomóc, podsuwa najprostsze rozwiązanie, stworzone dokładnie do tego, co chcesz osiągnąć, z prostym kreatorem do wykliknia w okienku składowych funkcji - a w zamian pretensje.

      @Polinik: Panie zadnych pretensji. Jestem daleki od tego. Tylko co to do choleryjest IFS?

      Jak pisalem cos tam ogarniam w C++ Wiem co to IF i jak stosowac. Ale excela nie ogarniam za cholere. Nie znam skladni, polecen, funkcji itp. A Ty mi tu wyskakujez z IFS...

      Nie dosc ze nie wiem co to jest to jeszcze jakiej skladni uzyc zeby uzyc.

      Peace Bro :)

    •  

      Komentarz usunięty przez autora

    •  

      @Zkropkao_Na: Fajnie i dzieki ze Ci sie chce pomagac.
      Co jest nie tak w warunku picrel?

      Najpierw mialem !=0 ale dostalm info ze to nie jezyk programowania i mam dac <> to dalem. I dalej dupa.

      W p2 ma sie pojawic 1 przypisne z r1 jesli w l2 jest cos innego niz 0.

      A nie dziala.

      źródło: Screenshot_1182.jpg

    •  

      @gorzki99: wpisujesz angielskie IF w polskojęzycznej wersji Excela ;)
      Wpisz:
      =JEŻELI(L2<>0;R1)

      źródło: u mnie działa.png

    •  

      wrzucam jeszcze raz bo boli mnie, że użyłam "," zamiast ";"

      IFS jak sama nazwa wskazuje, to liczba mnoga od IF. ¯_(ツ)_/¯

      Czyli zamiast pisać
      =IF(warunek, wartoscprawda, wartoscfalsz)&IF(warunek, wartoscprawda, wartoscfalsz)&IF(warunek, wartoscprawda, wartoscfalsz)

      Piszesz
      =IFS(warunek1, wartoscprawda1; warunek2,wartoscprawda2; warunek3, wartoscprawda3;warunek4, wartoscprawda4)

      Do maks 127 warunków

    •  

      @Zkropkao_Na: okaj dotarlo :)

      Psia krew z tymi poskojezycznymi wersjami :P

    •  

      @taju: @Zkropkao_Na: ok zadziaalo wiec moge sie bawic. Bedzie zapetlanie zapetlania :P

      źródło: Screenshot_1184.jpg

    •  

      Tylko co to do choleryjest IFS?

      @gorzki99:
      No funkcja w Excelu. Tak samo jak IF, SUM, AVERAGE i dziesiątki innych.
      Średnia możesz wyciągnąć sumując wszystko i dzieląc przez ilość albo użyć AVERAGE.
      Jak chcesz IFa na wiele możliwych wariantów to możesz zagnieżdżać IFy albo użyć IFS.

    •  

      @Zkropkao_Na: @Polinik: Ok po uzyskaniu informacji cos niecos poszlo do przodu. Ale ajak to excel... krok w przod a 5 w tyl:P

      Jk to excel rozumie?
      =JEŻELI(L2>=0;1)

      Bo w l2 nie m teraz nic a dalej p2 wpisuje 1

      nic to to samo dla excela co zero? Jasne ze nic to samo co zero ale nie w tym wypadku :P

      źródło: Screenshot_1185.jpg

    •  

      @gorzki99:
      Wpisz =JEŻELI(L2>=0;1;"dupa") I zobacz, czy zwroci 1 czy dupa. ( ͡° ͜ʖ ͡°)
      Jak 1 to znaczy, że pustą interpretuje jak 0 (czyli warunek jest prawdziwy) a jak "dupa" - znaczy, że fałszywy :)

      Do sprawdzenia, czy w komórce jest cokolwiek służy CZY.PUSTA.

      Ale mimo wszystko polecam WARUNKI() albo PRZEŁĄCZ(), życie naprawdę stanie się prostsze.

    •  

      @Polinik: @Zkropkao_Na : Chwale sie :) Sie udalo picrel. Teraz tylko mozolne kopiowanie formulki i zmienianie z jakich komorek ma liczyc. To sie da zautomatyzowac? :P

      źródło: Screenshot_1187.jpg

    •  

      @gorzki99:
      Wybierasz chyba najgorsze rozwiązania problemów. ¯\_(ツ)_/¯
      I w dodatku takie, które ciężko potem zreplikować w kolejnych komórkach bez ręcznego edytowania zakresów formuł.

      Jakbym robił coś takiego dla siebie:
      Wyniki meczów bym zapisywał w dwóch wierszach, czyli zamiast
      Katar | 1 | 1 | Ekwador

      dałbym

      Katar | 1
      Ekwador | 1

      Dodałbym kolumnę, która podaje punkty dla obu zespołów:
      =WARUNKI(LUB(G1="";G2="");"";G1<G2;0;G1>G2;3;G1=G2;1) -- G1 i G2 to wynik meczu a pierwsze dwa argumenty LUB(G1="";G2="");"" zwracają pustą komórkę któraś z G1 i G2 jest pusta. Prawda, że prościej niż zagnieżdżać kolejne JEŻELI? A dodatkowo -- kreator funkcji słabo ogarnia zagnieżdżone funkcje, a tu jest tylko jedno proste zagnieżdżenie, wiec całość jest łatwa do wyklikania -- picrel.

      Bramki stracone bym ograł zwykłym =bramki.przeciwnika
      Dodałbym też kolumnę z oznaczeniem Z R P jako rezultat dla danego zespołu. Formuła ta sama co wyżej WARUNKI, tylko zamiast 0 / 3 / 1 byłoby P / Z / R
      Co by znaczyło, że muszę tylko wpisać bramki dla obu zespołów.

      Czyli sekcja z meczami miałby formę dla meczu z wynikiem 2:1 miałaby formę:

      Zespół | gole strzelone | gole stracone | zdobyte punkty | rezultat
      Katar | 2 | 1 | 3 | Z
      Ekwador | 1 | 2 | 0 | P

      Z nawyku pewnie jeszcze dodałbym kolumnę z unikalnym ID meczu.

      A w tabeli z bilansem zespołów bym zliczał punkty poszczególnych zespołów z tabeli meczów funkcją SUMA.JEŻELI po kolumnie zdobyte punkty.
      Ilość remisów/wygranych/przegranych -- LICZ.JEŻELI po kolumnie rezultatu.
      BZ -- to zakładam bramki zdobyte -- SUMA.JEŻELI po kolumnie goli strzelonych
      BS -- bramki stracone -- SUMA.JEŻELI po kolumnie goli straconych
      BB -- bilans bramek(?) -- zwykłe odejmowanie.

      Wyniki meczów to tabela faktów, więc najlepiej -- jeden wiersz -- jeden rekord danych.

      A i to pewnie nie jest najwygodniejszy sposób ogrania tego problemu -- ale głównie da się to oprzeć na powyższych funkcjach.

      źródło: Przechwytywanie.JPG

    •  

      Wybierasz chyba najgorsze rozwiązania problemów. ¯_(ツ)_/¯

      @Polinik: Pewno tak jest :P Nie znam excela.

      Jkies 3 lata bede analizowal co napiales :)

    •  

      @Polinik: miras sorki ze zawrcam dupe ale ja dalej walcze :P Wiem ze wybralem najgorszy sposo ale tu chodzi o sama ciekawosc dlaczego nie dziala.
      Nie dziala dla drugiego meczu jak wpisze remis. Nie liczy remisu.
      Obojenie czy pierszy czy drugi mecz wpisze remis to w zaznaczonej komorce pojawia sie 1. Jak wpisze remis w drugim meczu (ja widac) to w komorce mam 0. Co ciekawe jak majac wpisane jak widac dopisze remis w ktorymkolwiek innym meczu kataru to od rzu w komorce pojawia sie 2. Magicznie dolicza remis z drugiego meczu ktorego wczesniej ie uwzglednial. 15 razy sprawdzalem formule. Co przeoczylem?

      źródło: Screenshot_1202.jpg

    •  

      @gorzki99: posprawdzaj nawiasy, bo człon, który powinien odpowiadać za punkty drugiego meczu jest wrzucony w nawias członu pierwszego ( ͡° ͜ʖ ͡°)

    •  

      posprawdzaj nawiasy, bo człon, który powinien odpowiadać za punkty drugiego meczu jest wrzucony w nawias członu pierwszego ( ͡° ͜ʖ ͡°)

      @Polinik: hmm pochrzanilem formuly i excel poprawil wiec nie wnikalem dopoki sie nie okazalo ze nie dziala jak ja chce :P. Zas chcial byc madrzejszy odemnie :P (niewatpie ze jest no ale... :P)
      Dzieki przygladne sie temu :)

    •  

      @Polinik: nie ogarniam :P
      JEŻELI(((CZY.PUSTA(L3);0;JEŻELI(L3=M3;1))+JEŻELI((CZY.PUSTA(L4);0;JEŻELI(L4=M4;1))+JEŻELI((CZY.PUSTA(L6);0;JEŻELI(L6=M6;1)))

      pierwszy mecz

      Jezeli((czy.pusta(L3);0;jezeli(l3=m3;1))

      Drugi mecz

      Jezeli((czy.pusta(l4);0;jezeli(l4=m4);1))

      Trzeci mecz

      Jezeli((czy.pusta(l6);0;jezeli(l6=m6);1))

      Tak?

      Wiec razem:

      =Jezeli((czy.pusta(L3);0;jezeli(l3=m3;1))+Jezeli((czy.pusta(l4);0;jezeli(l4=m4);1))+Jezeli((czy.pusta(l6);0;jezeli(l6=m6);1))

      Tak? bo nie dziala :P

      =Jezeli(czy.pusta(L3);0;jezeli(l3=m3;1)+Jezeli(czy.pusta(l4);0;jezeli(l4=m4);1)+Jezeli(czy.pusta(l6);0;jezeli(l6=m6);1)

      Tez nie dziala

      =Jezeli((czy.pusta(L3);0;jezeli(l3=m3;1))+Jezeli((czy.pusta(l4);0;jezeli(l4=m4);1))+Jezeli((czy.pusta(l6);0;jezeli(l6=m6);1))

      Tez nie dziala. Co tu jest grane? :PP

    •  

      Co tu jest grane? :PP

      @gorzki99: pierwsza powinna działać, ale zdaje się, że pierwszy mecz jest w l2:m2, a nie l3:m3? ( ͡° ͜ʖ ͡°)

      No i jeżeli, nie jezeli.

    •  

      pierwsza powinna działać, ale zdaje się, że pierwszy mecz jest w l2:m2, a nie l3:m3? ( ͡° ͜ʖ ͡°)

      @Polinik: Poprawiono na l2
      NIe dziala :P

      źródło: Screenshot_1205.jpg

    •  

      @gorzki99:
      Ziom...

      JeŻeli, nie jezeli.

    •  

      JeŻeli, nie jezeli.

      @Polinik: Wez nie rob se jaj :P Serio? TO jakis kretynizm jest :P
      No ale skoro trza to i tak nie dziala :)

      Trza bedzie zmienic wersje excela na angielska :P

      źródło: Screenshot_1206.jpg

    •  

      @gorzki99: policz nawiasy ( ͡° ͜ʖ ͡°)

      Dla pierwszego meczu otwierasz 4 nawiasy a zamykasz 3.

    •  

      Dla pierwszego meczu otwierasz 4 nawiasy a zamykasz 3.

      @Polinik: ok (BTW dzieki ze Ci sie chce)

      Czyli a to wygldac tak:

      1 mecz:

      Jezeli((czy.pusta(L2);0;jezeli(l2=m2;1)))

      2 mecz:

      Jezeli((czy.pusta(l4);0;jezeli(l4=m4);1)))

      3 mecz:

      Jezeli((czy.pusta(l6);0;jezeli(l6=m6);1)))

      Suma:

      =jezeli(Jezeli((czy.pusta(L2);0;jezeli(l2=m2;1)))+Jezeli((czy.pusta(l4);0;jezeli(l4=m4);1)))+Jezeli((czy.pusta(l6);0;jezeli(l6=m6);1))))
      ??

      Bo nie dziala :P

      Kurla dzisiaj sie juz klade. Bo jutro na rano. ALe mnie to denerwuje. Tematu nie odpuszcze :P To jest jakies porypane :P

      BTW jak CI sie chce to zapodaj rozwiazanie. Najlepiej z rozbiciem jak zapisac 1, 2,3 mecz a potem jak je "posumowac" I skad nawiasy :p

    •  

      @gorzki99:

      źródło: IMG_20221124_012229.jpg

    •  

      @Polinik: jest ż

      źródło: Screenshot_1208.jpg

    •  

      @gorzki99: wciąż masz jeden nawias za mało w pierwszej sekcji XD

      Idę spać

    •  

      @Polinik: Pochwale sie ze ogarniete :)
      Przygralem cwaniaka. Najpierw se rozbilem na 3 komorki (w kazdej po jednym meczu) a potem skopiowalem wszystkie 3 formuly do jednej komorki. Przed pierwsza formula = a przed pozostalymi + :PP Zadzialo :)

      Plus formatowanie warunkowe zeby ciemniejszym koorem zaznaczalo tych co maja najwiecej punktow i mozna wypelniac :)

      źródło: Screenshot_1209.jpg

    •  

      @Polinik: Edit bo jakims cudem nie moge edytowac :/

      wciąż masz jeden nawias za mało w pierwszej sekcji XD

      @Polinik: W jednym miejscu mialem nawias ) za malo a w drugim nawias ) za duzo. Nie w tym miejscu "znawiasowalem" :P