Zavrieť

Porady

Excel nevie pracovať s intervalom

Pri práci som narazil na zvláštnu "nevedomosť" excelu. V podmienke if nedokáže pracovať s údajom, pokiaľ je zadaný v podbe intervalu, napr. nevie posúdiť vzorec:
=IF(1<A1<5;A1;0).

Viem, že sa to dá poriešiť aj inak, ale je to zvláštne, že dokáže počítať komplikované výpočty, ale takú banalitu nie. A pritom to nehlási ako chybu vo vzorci. Ako dôkaz prikladám hárok.

Prípadne ako prepísať čo najjednoduchšie interval 1<A1<5, aby to excel rozpoznal a vedel s tým pracovať?
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    jojom je offline (nepripojený) jojom

    jojom
    Takto? =KDYŽ(1<B2;KDYŽ(B2<3;A2;0)), vložil som do bunky ešte raz podmienku. ??? Ale je to skoro to iste ako v alternativnom vzorci.

    Charon je offline (nepripojený) Charon

    Tsubasa wa yume soshite sore e ... ...viac Charon
    =IF(AND(1<B2; B2<3);A2;0)

    AND je dvojnásobná podmienka (viac násobná - až do 30)

    Chobot je teraz online Chobot

    Chobot
    jojom Pozri príspevok
    Takto? =KDYŽ(1<B2;KDYŽ(B2<3;A2;0)), vložil som do bunky ešte raz podmienku. ??? Ale je to skoro to iste ako v alternativnom vzorci.
    Riešenie mám, len ma prekvapilo, že také niečo nedokáže excel spracovať. Možno to treba prepísať nejako inak...

    Chobot je teraz online Chobot

    Chobot
    Charon Pozri príspevok
    =IF(AND(1<B2; B2<3);A2;0)

    AND je dvojnásobná podmienka (viac násobná - až do 30)
    Áno, ale prečo nezoberie podmienku 1<A1<3? Ako napísať jednoducho, že "Ak A1 je z intervalu od 1 do 3"?

    marjankaj je offline (nepripojený) marjankaj

    I am a man marjankaj
    Chobot Pozri príspevok
    Áno, ale prečo nezoberie podmienku 1<A1<3? Ako napísať jednoducho, že "Ak A1 je z intervalu od 1 do 3"?
    To je syntax jazyka. To čo chceš ty, nie je výraz typu IF. Na tento tvoj prípad by si si musel vytvoriť svoju vlastnú funkciu.

    napríklad. Interval(A1;od;po;vintervale;mimointerval)
    Interval(5;1;10;100;200) výsledok bude 100
    interval(20;1;10;100;200) výsledok bude 200
    Môžeš si to definovať aj inak napríklad ako reťazec a vo svojej funkcii si to rozkóduješ.

    Public Function interval(a As Integer, od As Integer, po As Integer, x As Integer, y As Integer) As Integer
    ' ak je v intervale tak x
    ' ak nie je v intervale tak y
    If (a < od Or a > po) Then
    interval = y
    Else
    interval = x
    End If
    End Function
    Naposledy upravil marjankaj : 22.09.09 at 16:01

    Charon je offline (nepripojený) Charon

    Tsubasa wa yume soshite sore e ... ...viac Charon
    Chobot Pozri príspevok
    Áno, ale prečo nezoberie podmienku 1<A1<3? Ako napísať jednoducho, že "Ak A1 je z intervalu od 1 do 3"?
    Viem(e) o aký problém sa jedná. Ale asi if je parametrizované tak, že podmienka môže byť iba jednoduchá. Viacnásobná sa rieši "AND" ... (ale aj to vieš). V každom prípade zaujímavý problém. A samozrejme je to možné riešiť cez VisualBasic, vytvorením vlastnej funkcie, alebo makrom... (ale aj to vieš)

    sthruska je offline (nepripojený) sthruska

    sthruska
    //Ale asi if je parametrizované tak, že podmienka môže byť iba jednoduchá.

    Je to tak. Pozrel som help. Je to tam priamo napísané.

    Chobot je teraz online Chobot

    Chobot
    marjankaj Pozri príspevok
    To je syntax jazyka. To čo chceš ty, nie je výraz typu IF. Na tento tvoj prípad by si si musel vytvoriť svoju vlastnú funkciu.

    napríklad. Interval(A1;od;po;vintervale;mimointerval)
    Interval(5;1;10;100;200) výsledok bude 100
    interval(20;1;10;100;200) výsledok bude 200
    Môžeš si to definovať aj inak napríklad ako reťazec a vo svojej funkcii si to rozkóduješ.

    Public Function interval(a As Integer, od As Integer, po As Integer, x As Integer, y As Integer) As Integer
    ' ak je v intervale tak x
    ' ak nie je v intervale tak y
    If (a < od Or a > po) Then
    interval = y
    Else
    interval = x
    End If
    End Function
    A je možné vytvárať vlastné funkcie v Exceli? Prakticky ju nebudem robiť, lebo bola to jednorazová vec nepotrebujem to často, ale teoreticky keby som chcel napr. vytvoriť tú načrtnutú funkciu ako povedzme IFINT, tak bolo by možné ju naprogramovať? Že by to v bunke normálne fungovalo ako =IFINT(A1;1;10;A1;0)?

    Chobot je teraz online Chobot

    Chobot
    sthruska Pozri príspevok
    //Ale asi if je parametrizované tak, že podmienka môže byť iba jednoduchá.

    Je to tak. Pozrel som help. Je to tam priamo napísané.
    Takže je to jasné - nie je to chyba Ecxelu, ale jeho normálna fukcionalita.

    Díky.

    marjankaj je offline (nepripojený) marjankaj

    I am a man marjankaj
    Chobot Pozri príspevok
    A je možné vytvárať vlastné funkcie v Exceli? Prakticky ju nebudem robiť, lebo bola to jednorazová vec nepotrebujem to často, ale teoreticky keby som chcel napr. vytvoriť tú načrtnutú funkciu ako povedzme IFINT, tak bolo by možné ju naprogramovať? Že by to v bunke normálne fungovalo ako =IFINT(A1;1;10;A1;0)?
    Je to možné. Môžeš si vytvoriť funkciu akú potrebuješ, podobne ako makro.
    Prejdi do VBA ALT+F11 a vlož do modulu tú funkciu.
    alebo pozri v prílohe.

    marjankaj je offline (nepripojený) marjankaj

    I am a man marjankaj
    Chobot Pozri príspevok
    Áno, ale prečo nezoberie podmienku 1<A1<3? Ako napísať jednoducho, že "Ak A1 je z intervalu od 1 do 3"?
    Toto sa asi nedá dobre vyhodnotiť.
    ak postupujeme zľava tak potom 1<A1 vyhodnotí ako true a potom true<3 tak to neviem

    mpca je offline (nepripojený) mpca

    bla bla.. koho to zaujíma? mpca
    a nestačí to takto?
    možno zbytočne dlhé ale funkčné

    =IF(1<B2;IF(B2<3;A2;0);0)

    tipujem že excel nevie vo vzorci vyhodnotiť naraz ten interval,,,

    Chobot je teraz online Chobot

    Chobot
    mpca Pozri príspevok
    a nestačí to takto?
    možno zbytočne dlhé ale funkčné

    =IF(1<B2;IF(B2<3;A2;0);0)

    tipujem že excel nevie vo vzorci vyhodnotiť naraz ten interval,,,
    Áno, na tom sme sa zhodli, že nevie posúdiť takú podmienku. Musí byť rozdelená do 2 častí, a na to je už viacero riešení. Aj to tvoje je jedno z možných.

    mpca je offline (nepripojený) mpca

    bla bla.. koho to zaujíma? mpca
    Chobot Pozri príspevok
    Áno, na tom sme sa zhodli, že nevie posúdiť takú podmienku. Musí byť rozdelená do 2 častí, a na to je už viacero riešení. Aj to tvoje je jedno z možných.
    moja chyba necitam celu temu a rovno odpovedam

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.