Calcoli di ingegneria

In un ambiente di engineering, non è insolito per necessità di "normalizzare" numeri in qualche modo. Ad esempio, potreste aver bisogno di mostrare i valori numerici normalizzati a multipli di 10 ^ 3, in modo tale che 7340 è espresso come 7.34 e 73400 si esprime come 73,4.

E 'possibile in Excel per utilizzare un formato numerico personalizzato per esprimere le informazioni in notazione scientifica che normalizzare la visualizzazione di un numero a un multiplo di 10 ^ 3. Per fare questo, si dovrebbe procedere come segue:

  1. Selezionare le celle che si desidera formattato.
  2. Scegliere l'opzione Celle dal menu Formato. Excel visualizza la finestra di dialogo Formato celle.
  3. Assicurarsi che sia selezionata la scheda Numero.
  4. Nella lista delle categorie di formato, scegliere Personalizza. (Vedi Figura 1.)

    Calcoli di ingegneria

    Figura 1. La scheda Numero della finestra di dialogo Formato celle.

  5. Nella casella Tipo, digitare ## 0.0E + 0 come formato. (Ciò fornisce un solo numero a destra della posizione decimale. Se si vuole di più, aumentare il numero di zeri dopo il punto decimale.)
  6. Fare clic su OK.

Ora, quando si immette un numero come 7340 nella cella, Excel visualizza come 7.3E + 3. A causa del modo è stato immesso il formato di celle, la parte dopo la E sarà sempre un multiplo di 3.

Questo è bello e buono, ma cosa succede se si desidera solo il 7.3 nella cella, e poi un prefisso metrico con una unità in una cella adiacente, come il chili? Questo è un po 'più complesso, ma può essere fatto utilizzando formule. Ad esempio, supponiamo di avere il vostro numero originale nella cella A2, si voleva il numero normalizzato nella cella B2, e il prefisso Metic e il nome dell'unità nella cella C2. Tutto quello che avrebbe bisogno di fare è inserire la seguente formula nella cella B2:

= IF (OR (A2> = 1, A2 <= - 1), SIGN (A2) * (ABS (A2) / (10 ^ (3 * INT (LOG (ABS (A2)) / 3)))),
IF (A2 = 0,0, SIGN (A2) * (ABS (A2) * 10 ^ (- 3 * INT (LOG (ABS (A2)) / 3)))))

Supponendo che le unità si sta lavorando sono l'unità immaginaria chiamata foo, in cella C2 si usa una formula diversa, come segue:

= IF (OR (A2> = 1, A2 <= - 1), SCEGLIERE (INT (LOG (ABS (A2)) / 3) +1, "Foos", "Kilofoos",
"Megafoos", "Gigafoos", "Terafoos", "Petafoos", "Exafoos"),
IF (A2 = 0, "", SCEGLI (INT (-log (ABS (A2)) / 3) +1, "Millifoos", "Microfoos",
"Nanofoos", "Picofoos", "Femtofoos", "Attofoos")))

Queste formule possono sembrare un po 'lungo, e sono. Tuttavia, essi funzioneranno per un numero compreso tra circa -9.99999E-18 a + 20 9.99999E. Ad esempio, se si mette il numero 0,000125 nella cella A2, quindi cella B2 conterrà 125 e la cella C2 dovrebbe contenere Millifoos.

Se si preferisce non utilizzare formule più lunghe come queste nelle cartelle di lavoro, è possibile sviluppare un paio di funzioni VBA per fare il trucco. La seguente funzione, MySciNum, restituisce un numero normalizzato. Pertanto, si utilizzerà = MySciNum (A2) nella cella B2 per ottenere gli stessi risultati come indicato in precedenza:

Funzione MySciNum (BaseNum As Double) As Double
Select Case BaseNum
Caso è> = 1
Mentre Abs (BaseNum)> 1000
BaseNum = BaseNum / 1000
Wend
Caso 0
'Non fare nulla
Case Else
Mentre Abs (BaseNum) <1
BaseNum = BaseNum * 1000
Wend
End Select
MySciNum = BaseNum
End Function

Questa funzione restituisce solo un numero. Per restituire le unità con l'appropriato prefisso di metrica, è necessario utilizzare la seguente funzione. Tutto quello che dovete fare è passare così il riferimento di cella e il nome di una singola unità. Ad esempio, è possibile utilizzare = MySciPre (A2, "foo"). La macro è il seguente:

Funzione MySciPre (BaseNum come doppio, Unità As String) As String
Dim OrigNum As Double
Dim Pref As Integer
Temp Dim As String

Pref = 0
OrigNum = BaseNum
Select Case BaseNum
Caso è> = 1
Mentre Abs (BaseNum)> 1000
BaseNum = BaseNum / 1000
Pref = Pref + 1
Wend
Caso 0
Pref = 99
Case Else
Mentre Abs (BaseNum) <1
BaseNum = BaseNum * 1000
Pref = Pref - 1
Wend
End Select

Select Case Pref
Caso -6
Temp = "Atto" & Unità
Caso -5
Temp = "femto" & Unità
Caso -4
Temp = "pico" & Unità
Caso -3
Temp = "nano" e Unità
Caso -2
Temp = "micro" e Unità
Caso -1
Temp = "milli" & Unità
Caso 0
Temp = Unità
Caso 1
Temp = "kilo" & Unità
Caso 2
Temp = "mega" & Unità
Caso 3
Temp = "giga" & Unità
Caso 4
Temp = "tera" & Unità
Caso 5
Temp = "peta" & Unità
Caso 6
Temp = "exa" & Unità
Case Else
Temp = ""
End Select

Se Len (Temp)> 0 Then
Temp = LCase (Temp)
Temp = UCase (Sinistra (Temp, 1)) e Mid (Temp, 2)
Se Abs (OrigNum) <> 1 Poi Temp = Temp e "s"
End If

MySciPre = Temp
End Function

ExcelTips è la vostra fonte per la formazione Microsoft Excel conveniente. Questo suggerimento (2928) si applica a Microsoft Excel 97, 2000, 2002, e 2003. È possibile trovare una versione di questo suggerimento per l'interfaccia ribbon di Excel (Excel 2007 e versioni successive) qui: Calcoli di ingegneria.