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.
Potresti avere più fortuna con questa domanda su superuser.com. – Stewbob
È 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
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