Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

excel notazione scentifica

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

excel notazione scentifica

Postdi wallace&gromit » 13/08/12 10:01

Ciao a tutti,
pensate che sia possibile modificare il modo in cui excel rappresenta i decimali?
Per esempio 0.00004 viene rappresentato come 4.0E-05, ma in "lingua comune" si usa piuttosto 4.0 . 10-5 (con -5 in forma di apice). Mi piacerebbe fare apparire questa notazione, ma con il formato personalizzato non ci riesco, c'è qualche altra via?
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Sponsor
 

Re: excel notazione scentifica

Postdi Flash30005 » 13/08/12 10:18

Se è soltanto per una visualizzazione puoi realizzare una macro che pone un apice prima del numero trasformando in testo ciò che calcolerai con macro
ma, così facendo, non potrai utilizzare per calcoli quella cella.

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: excel notazione scentifica

Postdi wallace&gromit » 13/08/12 13:58

eh purtroppo il valore deve rimanere tale, visto che è il risultato di un calcolo e che a sua volta può servire per calcoli successivi.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: excel notazione scentifica

Postdi Anthony47 » 13/08/12 23:34

Se l' estetica e' veramente importante allora si puo' sempre separare la parte da usare come Output (su cui si lavora trasformando il numero in stringa) e quella destinata ai calcoli, dove i numeri sono numeri qualunque sia la loro formattazione.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel notazione scentifica

Postdi wallace&gromit » 14/08/12 10:02

Allora, faccio di necessità virtù e provo a fare un collegamento in forma di testo sulla cella col valore.
Ho preparato una sub che funziona, ma non riesco a trasformarla in function (preferirei averla in questa forma).
Ecco i miei codici,
la sub funzionante:
Codice: Seleziona tutto
Sub Scientifico2()
fatt = 1
myVal = Range("C3").Value
Do Until myVal > 1
myVal = myVal * 10
fatt = fatt + 1
Loop
scientific = myVal & " . 10-" & fatt
Range("E3").Value = scientific
Range("E3").Select
With ActiveCell.Characters(Len(scientific) - 1, Length:=2).Font
.Superscript = True
End With
End Sub

la funzione che non funziona!
Codice: Seleziona tutto
Function Scientifico(myVal As Double)
fatt = 1
Do Until myVal > 1
myVal = myVal * 10
fatt = fatt + 1
Loop
scientific = myVal & " . 10-" & fatt
Scientifico = scientific
With ActiveCell.Characters(Len(scientific) - 1, Length:=2).Font
.Superscript = True
End With
End Function
so anche io perchè non funziona: l'ultima istruzione arriva dopo avere già concluso l'operazione di scrittura, però non so come ovviare a questo problema.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: excel notazione scentifica

Postdi Anthony47 » 15/08/12 01:15

Humm... non spieghi in che senso non ti funziona, ma immagino che ti sorprenda il fatto che non riesci a mettere in Apice l' esponente.
Purtroppo questo e' normale, in quanto una function non puo' manipolare il formato delle celle; per quello che ne so e' un limite invalicabile, quindi se vuoi proprio ottenere l' effetto devi usare i caratteri unicode corrispondenti ai simboli che vuoi rappresentare; un po' come avevamo fatto tempo fa con la Function chemical (ricordi? Vedi viewtopic.php?f=26&t=95492&p=547433#p547369)
Come difficolta' residua c' e' che la codifica dei superscript non e' sequenziale; se 0=2070(hex), 4=2074, 5=2075 etc i superscript di 1-2-3 sono rispettivamente 00B9, 00B2 e 00B3

Mi sembra anche che il tuo algoritmo sbagli di una grandezza (es 0,0012345 viene tradotto in 1,2345 . 10-4), che sia ambiguo sui numeri positivi (es 22,3456 viene tradotto con 22,3456 . 10-0, una volta corretto l' errore dell' esponente), che vada in crisi con valori negativi e che soprattutto mandi in crisi il pc se myVal e' Zero.

Cio' detto la mia Function Expo e' la seguente:
Codice: Seleziona tutto
Function Expo(ByVal myVal As Double, Optional ByVal myDecimal As Long = 15) As String
'by Anthony47, vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=96534
'Trasforma un numero in una stringa rappresentante la sua notazione scientifica
'Uso:
'=Expo(ilNumero[;NumeroDecimali])
'
'Se NumeroDecimali e' omesso verranno presentati i decimali presenti, ma max 14
' (e' il limite di excel...)
'
'RICHIEDE la presenza anche della Function Superscr
'
Dim GSign As String, Sign As String, Espon As String
Dim Posit As Long, I As Long, Fatt As Long
'
'Gestione positivo/negativo
If myVal < 0 Then GSign = "-": myVal = Abs(myVal)
'Gestione valore 0
If myVal = 0 Then Expo = "0,0": Exit Function
'Gestione segno potenza
If myVal < 1 Then Sign = ChrW(8315) 'Else Sign = ChrW(8314)  '8314="+"
'
'Gestione numeri superiori a 10
Posit = 0
Do Until myVal < 10#
myVal = myVal / 10#
Posit = Posit + 1: DoEvents
Loop
'
'Gestione numeri inferiori a 1
Fatt = 0
Do Until myVal >= 1#
myVal = myVal * 10#
Fatt = Fatt + 1: DoEvents
Loop
'
'Esporta risultati
Espon = (Fatt + Posit)
Expo = GSign & Left(myVal, myDecimal + 2)
If Espon > 0 Then
    Expo = Expo & " * 10" & Sign & Superscr(Espon)
End If
End Function

Function Superscr(ByVal Esponente As Long) As String
'restituisce una stringa con caratteri unicode corrispondente al valore
'   "Esponente" in superscript
'   Max 9 digit!
'
If Esponente > 9 Then UStr = Superscr(Int(Esponente / 10))
Esponente = Esponente Mod 10
Select Case Esponente
    Case 1
    Superscr = ChrW(185)
    Case 2
    Superscr = ChrW(178)
    Case 3
    Superscr = ChrW(179)
    Case Else
    Superscr = ChrW(8304 + Esponente)
End Select
Superscr = UStr & Superscr
End Function

Uso:
-inserire in un Modulo standard del vba (non un modulo di foglio) e poi usare una formula del tipo
Codice: Seleziona tutto
=Expo(ilNumero[;NumeroDecimali])

Se NumeroDecimali e' omesso verranno presentati i decimali presenti, max 14
(e' il limite di excel...)

Notate che il codice di sopra contiene DUE funzioni; la Function Expo, che fa la conversione di cui stiamo parlando ma si appoggia alla Function Superscr. Questa seconda e' quella che realizza la conversione dell' esponente in caratteri "superscript", e puo' anch' essa essere usata il formule del tipo
Codice: Seleziona tutto
=Superscr(Numero)
che restituiranno una stringa con quel numero in superscript, anche in formule piu' articolate quali
Codice: Seleziona tutto
="E=MC"&Superscr(2)

Ricordate che non tutti i font supportano bene i caratteri superscript unicode; se la resa non e' decorosa cercate un altro font (es Calibri, oppure anche Arial Unicode)

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel notazione scentifica

Postdi wallace&gromit » 16/08/12 07:50

Perfetto Anthony, come sempre hai svolto un lavoro completo e funzionante.
Ho ripensato anche io al Calibri, ma speravo funzionasse con l'Arial normale.
In genere non arrivo nemmeno all'esponente -9, quindi il margine è più che sufficiente.
Grazie mille!
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: excel notazione scentifica

Postdi Anthony47 » 16/08/12 22:37

In genere non arrivo nemmeno all'esponente -9, quindi il margine è più che sufficiente
I calcoli vengono fatti con 15 cifre significative, l' esponente puo' andare da -324 a +308; si, il margine e' piu' che sufficiente... :D :D

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "excel notazione scentifica":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti