Chobot
22.09.09,13:00
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
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:rolleyes:. Ako dôkaz prikladám hárok.

Prípadne ako prepísať čo najjednoduchšie interval 1
jojom
22.09.09,11:51
Takto? =KDYŽ(1
Charon
22.09.09,11:59
=IF(AND(1
AND je dvojnásobná podmienka (viac násobná - až do 30)
Chobot
22.09.09,11:59
Takto? =KDYŽ(1
Riešenie mám, len ma prekvapilo, že také niečo nedokáže excel spracovať. Možno to treba prepísať nejako inak...
Chobot
22.09.09,12:00
=IF(AND(1
AND je dvojnásobná podmienka (viac násobná - až do 30)

Áno, ale prečo nezoberie podmienku 1
marjankaj
22.09.09,13:16
Áno, ale prečo nezoberie podmienku 1
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
Charon
23.09.09,09:01
Áno, ale prečo nezoberie podmienku 1
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
23.09.09,09:27
//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
23.09.09,09:36
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
23.09.09,09:38
//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
23.09.09,10:47
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
23.09.09,10:51
Áno, ale prečo nezoberie podmienku 1
Toto sa asi nedá dobre vyhodnotiť.
ak postupujeme zľava tak potom 1
mpca
24.09.09,13:21
a nestačí to takto?
možno zbytočne dlhé ale funkčné :)

=IF(1
tipujem že excel nevie vo vzorci vyhodnotiť naraz ten interval,,,
Chobot
24.09.09,13:30
a nestačí to takto?
možno zbytočne dlhé ale funkčné :)

=IF(1
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
25.09.09,06:05
Á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.

mimotemy moja chyba necitam celu temu a rovno odpovedam :)