2013-09-24 19 views
5

Qualcuno sa se è possibile mostrare numeri in MS Excel con prefissi SI?Prefissi SI per il formato numerico in MS Excel

Mi piacerebbe avere

... 1 n, 1 μ, 1 m, 1, 1 k, 1M, 1 G, ...

invece di formato scientifico

... 1E-09, 1E-06, 1E-03, 1, 1E + 03, 1E + 06. 1E + 09, ...

Forse aggiungendo un'unità come V (volt), F (farad) ecc

sarei perfetto, se la cellula sarebbe ancora contenere il numero e non una stringa, così può essere facilmente cambiato in un altro formato (di nuovo a scientifico o altro)

+0

Potresti avere più fortuna con questa domanda su superuser.com. – Stewbob

+0

È abbastanza facile aggiungere un 'V' o un' F' (es. #, ## 0 "F") o 'nV',' μV' ecc, ma penso che potrebbe essere necessario VBA per rappresentare i like di .001 come 1, quindi dubitare della migrazione verso SU è adatto. (PS sono normalmente suffissi). Sì, puoi visualizzare 1000 come 1 kV (con '#, ## 0," kV "') ma la stessa formattazione, ad esempio, non trasformerà 1000 in nessun valore e "F" . È possibile utilizzare la formattazione condizionale per i valori superiori a '1', ma forse non per quelli inferiori. – pnuts

+0

Ho aggiunto prima il simbolo dell'unità, non è questo il problema, ma i prefissi lo sono sicuramente. (Intendevo prefissi dell'unità :) ma probabilmente sono anche il suffisso del numero) – josh21

risposta

1

Nessuna soluzione funzionerà meglio della notazione scientifica.

Se si utilizzano formati numerici personalizzati, è necessario inserirli manualmente (o con VBA) in modo tale da mascherare il contenuto effettivo della cella.

Per esempio, se si desidera visualizzare le seguenti coppie di formato:

1 n 1E-09 
1 µ 1E-06 
1 m 1E-03 
1 1 
1 k 1E+03 
1 M 1E+06 
1 G 1E+09 

Se si dispone di 0.001, si dovrà impostare il formato di "1 m" - questo sarà mascherare il numero, quindi se avete 0.002 dovresti impostarlo come "2 m" - se lo hai cambiato in 0.004, visualizzerebbe comunque 2 m come risultato. Questo ovviamente non è l'ideale.

È possibile configurarlo come foglio a due colonne, in cui sono presenti i valori a sinistra e utilizzare una formula da visualizzare con unità a destra, ma alla fine non si è in grado di eseguire operazioni matematiche con valori formattati.

Quindi, in sostanza, la risposta è "no", non è possibile.

si potrebbe teoricamente scrivere uno script VBA che cambierà automaticamente i contenuti visibili in base al contenuto delle celle ogni volta che un numero è cambiato, ma lo script sarebbe ingombrante e potrebbe causare seri problemi a chi vuoi inviare a se avessero macro off. Richiederebbe anche tutti i tipi di casi d'angolo a seconda che si desideri che i numeri siano formattati "normalmente" in determinate celle. Quindi, mentre può essere teoricamente possibile, è praticamente impossibile

+1

Grazie, almeno ora non sprecherò altro tempo su di esso – josh21

0

È possibile, sebbene ingombrante, utilizzare una tabella di conversione e le funzioni di corrispondenza e indice.

Da una tabella di conversione del genere (2 colonne):

1.E+15 P 
1.E+12 T 
1.E+09 G 
1.E+06 M 
1.E+03 k 
1.E+00 
1.E-03 m 
1.E-06 µ 
1.E-09 n 
1.E-12 p 
1.E-15 f 

Si potrebbe quindi eseguire la seguente traduzione

3.68437E+11 --> 368.44 G 

Se avete la tabella di conversione nelle colonne A e B e la numero non formattato nella cella G1

H1 
=G1/INDEX(A:A,MATCH(G1,$A:$A,-1)+1) 
I1 
=INDEX($B:$B,MATCH(G1,$A:$A,-1)+1) 

Quindi il corretto i numeri verranno visualizzati nella colonna H con il suffisso/prefisso nella colonna I.

È ancora pesante e deve essere utilizzato solo per la stampa finale poiché i calcoli dei numeri modificati dovranno includere una traduzione inversa.

+0

Appena realizzato ho incluso B (per Miliardi) invece di G, e poi ha avuto una G dopo quella nella mia tabella di conversione. Questo ha rovinato l'ordine. Basta rimuovere B quindi G è 10^9 e T è 10^12 ecc ... Ci scusiamo per l'errore stupido. – Mike

0

Non c'è modo che io sappia di farlo come un formato numerico (dove è possibile utilizzare il numero formattato come si farebbe con qualsiasi altro valore numerico per il calcolo successivo), ma per presentare semplicemente il numero usando i prefissi SI, ecco il formula che uso. Prende la formula nella cella specificata (di solito accanto ad essa, in questo caso E28), ridimensiona il numero, arrotonda al numero specificato di cifre significative (in questo caso 3), aggiunge il prefisso SI appropriato, quindi aggiunge il valore specificato unità (in questo caso 'F' per Farads). Il vantaggio qui è che la formula è autonoma e non richiede alcuna tabella di riferimento esterna. Questa formula funziona per femto (10^-15) attraverso Tera (10^12), ma può essere facilmente ampliato per i prefissi addizionali

=CONCAT(
    ROUND(
     IF(E28>1E12, E28/1E12, 
      IF(E28>1E9, E28/1E9, 
       IF(E28>1E6, E28/1E6, 
        IF(E28>1E3, E28/1E3, 
         IF(E28>1, E28, 
          IF(E28>1E-3, E28*1E3, 
           IF(E28>1E-6, E28*1E6, 
            IF(E28>1E-9, E28*1E9, 
             IF(E28>1E-12, E28*1E12, 
              E28*1E15 
     ) ) ) ) ) ) ) ) ), 
     3 +N("This is the number of significant digits to round to") 
     -(1+INT(LOG10(ABS(
      IF(E28>1E12, E28/1E12, 
       IF(E28>1E9, E28/1E9, 
        IF(E28>1E6, E28/1E6, 
         IF(E28>1E3, E28/1E3, 
          IF(E28>1, E28, 
           IF(E28>1E-3, E28*1E3, 
            IF(E28>1E-6, E28*1E6, 
             IF(E28>1E-9, E28*1E9, 
              IF(E28>1E-12, E28*1E12, 
               E28*1E15 
     ) ) ) ) ) ) ) ) ) ))))  
    ), 
    IF(E28>1E12, "T", 
     IF(E28>1E9, "G", 
      IF(E28>1E6, "M", 
       IF(E28>1E3, "k", 
        IF(E28>1, "", 
         IF(E28>1E-3, "m", 
          IF(E28>1E-6, "µ", 
           IF(E28>1E-9, "n", 
            IF(E28>1E-12, "p", 
             "f" 
    ) ) ) ) ) ) ) ) ), 
    "F" +N("This is the unit symbol that will be appended to the end") 
) 

Se si desidera arrotondare ad un numero fisso di cifre decimali al contrario di significativo figure, la formula è un po 'più semplice:

=CONCAT(
    ROUND(
     IF(E28>1E12, E28/1E12, 
      IF(E28>1E9, E28/1E9, 
       IF(E28>1E6, E28/1E6, 
        IF(E28>1E3, E28/1E3, 
         IF(E28>1, E28, 
          IF(E28>1E-3, E28*1E3, 
           IF(E28>1E-6, E28*1E6, 
            IF(E28>1E-9, E28*1E9, 
             IF(E28>1E-12, E28*1E12, 
              E28*1E15 
     ) ) ) ) ) ) ) ) ), 
     3 +N("This is the number of decimal digits to round to") 
    ), 
    IF(E28>1E12, "T", 
     IF(E28>1E9, "G", 
      IF(E28>1E6, "M", 
       IF(E28>1E3, "k", 
        IF(E28>1, "", 
         IF(E28>1E-3, "m", 
          IF(E28>1E-6, "µ", 
           IF(E28>1E-9, "n", 
            IF(E28>1E-12, "p", 
             "f" 
    ) ) ) ) ) ) ) ) ), 
    "F" +N("This is the unit symbol that will be appended to the end") 
) 

nota che ho scritto tutte le costanti di scala in notazione esponenziale, Excel cambierà questi per i numeri semplici quando si immette la formula. Utilizzando un riferimento di cella relativa, è abbastanza facile copiare e incollare la formula intorno a dove ne hai bisogno.

La formula può essere condensata in un singolo blocco di istruzioni IF/CONCAT/ROUND, ma disponendola come ho fatto qui separa la costante di arrotondamento in un singolo punto della formula, rendendo più semplice il cambiamento.

0

Basta selezionare la cella o l'intervallo di celle che si desidera contenere il simbolo indicato. Fare clic con il tasto destro del mouse sulla cella e selezionare FORMAT CELLS. Seleziona il formato NUMERO a sinistra, inserisci i decimali, ecc. Sulla destra. Ora vai fino in fondo alla lista delle opzioni di formato sulla sinistra e seleziona CUSTOM. (IMPORTANTE: NON selezionare NESSUNA opzione di formato personalizzato sulla destra.) Fare clic con il pulsante sinistro del mouse nella casella appena sotto TIPO: e sopra l'elenco delle opzioni di formato personalizzato. (Questa casella mostra il tuo formato selezionato corrente. {0.00 se hai selezionato il formato numerico predefinito} Vuoi mantenere questa formattazione E aggiungi ulteriore formattazione.) Clicca a destra di 0.00 e digita quanto segue: "μ" Fai clic su OKAY e potresti inserisci i tuoi dati come al solito. La formattazione delle celle non ha alcun impatto sui valori inseriti. È possibile eseguire tutte le funzioni normalmente. Allego una foto in cui ho usato le stesse istruzioni per applicare le letture e la notazione MU greca ai valori ed eseguito alcuni calcoli di base senza ostacolare la capacità di Excel di funzionare. Special Notation in Excel

0

Si può fare qualcosa di simile, che ho avuto da Millions & Thousands Custom Number Formatting:

[>=1000000] #,##0.0,," MΩ";[<1000000] #,##0.0," kΩ";General 
  • 400 rende come 0.4 kΩ (probabilmente non è quello che si vuole)
  • 4000 rende come 4.0 kΩ
  • 40e3 rende as 40.0 kΩ
  • 40e6 rende come 40.0 MΩ

ma probabilmente è possibile aggiungere ulteriori clausole per coprire altre gamme.Nevermind, you can't.