[ spirit_face @ 05.02.2014. 16:44 ] @
Pokušavam da napišem if funkciju u excelu koja bi imala 4 različita uslova i po svakom uslovu radila drugačije računanje, čitajući neke tutorijale formirao sam sintaksu i ubacio je, ali excel kaže da ima previše parametara...

ovo sam napisao (sve u jednom redu):

=IF
(AND((C2-C3)>0;(D2-D3)>0);DEGREES(ATAN((C2-C3)/(D2-D3)))+0;
if (AND((C2-C3)>0;(D2-D3)<0);DEGREES(ATAN((C2-C3)/(D2-D3)))+180);
if (AND((C2-C3)<0;(D2-D3)>0);DEGREES(ATAN((C2-C3)/(D2-D3)))+180);
if (AND((C2-C3)<0;(D2-D3)<0);DEGREES(ATAN((C2-C3)/(D2-D3)))+360))



može li pomoć oko rešavanja.
Funkcija inače rešava direkcioni ugao između dve tačke.
[ 3okc @ 05.02.2014. 17:04 ] @
Vidi da li može nešto CHOOSE da ti obavi (umesto silni IF-ovi).

Sem toga, nisu ti pokrivene sve mogućnosti: šta ako C2=C3, tj da za razliku imaš 0??
[ spirit_face @ 05.02.2014. 17:36 ] @
To pravim za lične potrebe, znam da nikada neće biti jednake vrednosti, a i nisam hteo da komplikujem izraz koji mi još uvek ne rešava probelm.
Ajde pogledaću help za CHOOSE, nisam znao za tu funkciju.
[ spirit_face @ 05.02.2014. 17:48 ] @
CHOOSE mi ne rešava problem, ona kao prvi argument traži redni broj, u toj varijanti bih morao da sa strane napravim sva rešenja pa da uvlačim odgovarajuće u zavisnosti od rednof broja, što mi malo komplikuje stvara, jer osim ovih računanja imam još dosta popunjenih ćelija, pa bi mi zakomplikovalo pregled.

Navodno IF može da se ugnjezdi 7 puta, meni ovde treba 4, ali mi javlja da imam previše argumenata...
[ 3okc @ 05.02.2014. 18:02 ] @
Koliko ja vidim, ti ovde računaš jedan te isti obrazac a jedina razlika je u onom dodatku na kraju.. pa što onda ne postaviš da se samo ta vrednost određuje!?

I sem toga, CHOOSE se može upotrebiti tako što ćeš redni broj staviti da se odredi jednom od tri kobinacije.

Ali ok, može se sve i bez CHOOSE:

Code:
=DEGREES(ATAN((C2-C3)/(D2-D3)))+180*((C2-C3)<0)+180*((D2-D3)<0)
[ spirit_face @ 05.02.2014. 18:13 ] @
Nisam baš skontao šta si uradio, ali rezultat je onaj koji sam tražio...
Ajd ako nije problem objasni mi uratko sintaksu (te zvezdice i ostalo), možda će mi trebati neka slična funkcija za kasnije pa da ne spamujem...
[ 3okc @ 05.02.2014. 19:08 ] @
"Zvezdica" je simbol za množenje. Množiš sa po 180 svaki od sabiraka koji su logički iskazi sa kojima kažeš da je razlika manja od nule. U slučaju kada su obe razlike manje, imaš 180+180, što je 360, kada nijedna nije manja, oba puta imaš množenje sa nulom itd.
[ rudy_kv @ 05.02.2014. 21:33 ] @
Direkcioni ugao moze na dva nacina da se racuna. Po starom nacinu koji si ti opisao u prvom postu ili po "novijem" kada se u zavisnosti od kvadranta dodaju na kraju + 0, 90, 180 i 270 stepeni ali u tom slucaju se za kvadrante u kojima su delta y i delta x razlicitg znaka koristi ctg, odnosno obrce se razlomak kod tangensa.

Ja sam svojevremeno pravio te geodetske obrasce kada sam bio student, ali mi je bio lakse da to razdvojim u vise celija.
U fajlu imas 8. obrazac onako skolski, a na drugom sheetu ovo sto si ti opisao (ali tu je i promenjen redosled unosa tacaka A i B).

Nadam se da ce ti ovo pomoci. Pozdrav

EDIT:
Obrati paznju da si u prvom postu lose definisao uslove za 3. i 4. kvadrant, tj. obrnuo si ih.

[Ovu poruku je menjao rudy_kv dana 05.02.2014. u 23:23 GMT+1]
[ djoka_l @ 06.02.2014. 07:54 ] @
Postoji i funkcija ATAN2

=DEGREES(ATAN2(c2-c3; d2-d3))

koja radi baš to što ti treba. atan2(dx, dy) radi atan(dx/dy) a uz to ispravno određuje kvadrant, kao i slučaj kada je dy=0

[Edit: Dodat link]

[Ovu poruku je menjao 3okc dana 06.02.2014. u 09:08 GMT+1]

Edit: atan2(dx,dy) je atan(dy/dx), obrnuo sam u postu, ali je to ono što ti treba...

[Ovu poruku je menjao djoka_l dana 06.02.2014. u 09:10 GMT+1]
[ rudy_kv @ 28.06.2014. 14:40 ] @
Malo je starija tema, ali nisam se setio radnije da okacim kako izgleda konacna formula za racunanje direkcionog ugla funkcijom ATAN2.

=IFERROR(MOD(DEGREES(ATAN2(ΔX;ΔY));360);"") -funkcija "iferror" sluzi da ostavi praznu celiju ako su obe koordinatne razlike 0 (ista tacka); funkcija "mod" sluzi da ugao uvek prikazuje u granicama od 0 do 360 stepeni (nema negativnih uglova).

U prilogu je i fajl gde se moze videti kako radi ova funkcija i kako se iz decimalnog zapisa izvlace u posebne celije stepeni, minuti i sekunde.