Newsgroup: it.scienza.astronomia
Titolo: Calcolo angolo con Excel

Salve a tutti,
mi piacerebbe sapere se esiste una formula da usare con Excel per poter 
calcolare la larghezza di un angolo.
Faccio un esempio:
in una cella di Excel inserisco l'angolo del punto A: 20° 53'57''
in un'altra cella inserisco l'angolo del punto B: 20° 53'57''.
Per conoscere l'ampiezza dell'angolo più piccolo tra A e B, eseguendo il 
calcolo manualmente dovrei eseguire il seguente calcolo:
(310° 26'15''- 20° 53'57'')-180° = 109°32'18''
Esiste una formula di Excel per automatizzare questo procedimento? Intendo 
dire che mi aggiunga, sottragga o tolga, quando necessario, 180° per avere 
sempre il risultato dell'angolo più piccolo?
Grazie infinite per l'attenzione.
Stefano

I modi possibili sono molti. Questo è uno dei tanti.
Prova a usare una funzione personalizzata come questa posta in un modulo di 
VBasic (premi Alt-F11 per aprire l'editor di VBasic), se non è giaà presente 
un modulo clicca su inserisci/modulo
Function dms(A, B) As Long
    Dim g1 As Long, p1 As Long, s1 As Long, g2 As Long, p2 As Long, s2 As 
Long
    ' estrae gradi, primi e secondi di A e B
    g1 = Int(A): p1 = Int((A - g1) * 100): s1 = (A - (g1 + p1 / 100)) * 
10000
    g2 = Int(B): p2 = Int((B - g2) * 100): s2 = (B - (g2 + p2 / 100)) * 
10000
    ' trasforma A e B in gradi e frazione di grado
    A = g1 + p1 / 60 + s1 / 3600
    B = g2 + p2 / 60 + s2 / 3600
    dms = A - B
    'qui di seguito dovresti inserire Select Case dms
    'che operi sull'angolo calcolato per trovare
    'l'angolo minimo che ti interessa
    'Successivamente puoi trasformare di nuovo l'angolo trovato
    'in gradi, primi e secondi
End Function
Ciao, eggpap 

Dimenticavo:
se A=10° 20' 08" e B = 190° 15' 18" puoi usare la funzione scrivendo in una 
cella
=dms(10,2008;190,1518)
premendo invio nella cella troverai il risultato.

 di VBasic (premi Alt-F11 per aprire l'editor di VBasic),
Grazie mille, sei stato gentilissimo e velocissimo.
Se non ti disturbo troppo volevo chiederti se era anche possibile creare una 
formula con la funzione del "SE" sempre di Excel.
In caso affermativo che cosa dovrei scrivere?
Ancora grazie!
Stefano

I modi possibili sono molti. Questo č uno dei tanti.
Prima facevo riferimento alla funzione del SE (non so se correttamente) 
perchč il mio problema č questo:
- sulla colonna A di Excel  ho un lungo elenco di angoli, poniamo ad es. 100 
angoli  distribuiti quindi in 100 righe
- sulla colonna B di Excel ho un'altro elenco di 100 righe di angoli.
Mi sarebbe piaciuto trovare una formula che nella colonna C (usando il 
sistema di trascinare giů, con il mouse, il riquadro della formula creata), 
mi calcolasse il risultato della differenza dei due angoli di ogni riga 
delle colonne A e B e me lo restituisse sempre con un risultato inferiore a 
180°.
Ciao
Stefano 

 sistema di trascinare giù, con il mouse, il riquadro della formula creata),


 180°.
Ammettendo che tutti gli angoli che compaiono nelle colonne A e B siano
positivi un possibile algoritmo č il seguente:
A1 e B1 (valore degli angoli);
C1=A1-B1
D1=SE(C1<0;-C1;C1)  
E1=SE(D1>180;360-D1;D1)
e poi trascini le formule fino a dove ti serve.
Saluti,
Aleph 
 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 positivi un possibile algoritmo è il seguente:
...
Funziona anche se si considerano amgoli negativi ovvero, assumendo le
usuali convenzioni, angoli contati in verso orario anziché antiorario (es.
un angolo di +65° corrisponde a un angolo di -295°). 


 Aleph 
Se non è previsto che differiscano di k*180° con k intero, ecco una
soluzione banale:
RESTO(ASS(A1-B1);180)
Ciao,
Armando

 Armando
Correzione:
=MIN(A1-B1;360-(A1-B1))
Ciao,
Armando

 colonna C.
Grazie mille!
Mi hai dato delle "dritte" veramente importanti.
Ora dovrò studiare un po' VBasic (che non conosco) perchè ho provato - come 
esempio - ad inserire la funzione da te indicata (quella suindicata) ma in 
Excel, nella cella C1, mi compare la scritta "#NOME?"
Comunque mi hai dato veramente un grosso aiuto!
Ciao Stefano 

"Armando" <a.b@c.d> ha scritto nel messaggio 
news:35Ocf.32167$65.9...@twister1.libero.it...

Grazie Armando, controllerò anche la tua formula.
Stefano 


Grazie Aleph per l'interessamento ma ho la necessità di avere una formula 
unica nella cella C1.
Ciao Stefano 

 unica nella cella C1.
puoi annidare le formule in e1 con qualche parentesi... otterrai qualcosa di
brutto ma funzionale.

 unica nella cella C1.
E' banale:
A1 e B1 (valore degli angoli);
C1=SE(ASS(A1-B1)>180;360-ASS(A1-B1);ASS(A1-B1))


 =MIN(A1-B1;360-(A1-B1))
Non è di validità generale e fornisce anche risultati negativi (ma su
questo punto si potrebbe rimediare). 
Per esempio per
A1 = 30
B1= 278
ottieni C1= -248 invece di C1 = 112.


 Aleph
=MIN(ASS(A1-B1);360-ASS(A1-B1))
Ok?
Armando

 Ok?
OK. 
In questo modo è perfettamente equivalente, anche se la sintassi è
diversa, alla mia.
