Quando si utilizza una formula per unire il contenuto di più celle in una cella, Kris ha problemi a far sì che Excel conservi la formattazione delle celle originali. Si supponga, ad esempio, che le celle A1 e B1 contengano rispettivamente 1 e 0,33. Nella cella C1, inserisce la seguente formula:

=A1 & " : " & B1

Il risultato nella cella C1 è simile a questo:

1 : 0.3333333333

Il motivo per cui il C1 risultante non corrisponde a quanto mostrato in B1 (0,33) è perché il valore in B1 non è realmente 0,33. Internamente, Excel mantiene i valori a 15 cifre, in modo che se la cella B1 contiene una formula come = 1/3, internamente questa viene mantenuta come 0,33333333333333. Ciò che vedi nella cella B1, tuttavia, dipende da come è formattata la cella. In questo caso, la formattazione è probabilmente impostata per visualizzare solo due cifre oltre il punto decimale.

Tuttavia, esistono diversi modi per ottenere i risultati desiderati nella cella C1. Un metodo è semplicemente modificare leggermente la formula in modo che i valori estratti dalle celle A1 e B1 siano formattati. Ad esempio, il seguente esempio utilizza la funzione TEXT per eseguire la formattazione:

=TEXT(A1,"0") & " : " & TEXT(B1,"0.00")

In questo caso, A1 è formattato per visualizzare solo numeri interi e B1 è formattato per visualizzare solo due cifre decimali .. Puoi anche usare la funzione ROUND per ottenere un risultato simile:

=ROUND(A1,0) & " : " & ROUND(B1,2)

Un’altra possibile soluzione è modificare il modo in cui Excel gestisce la precisione nella cartella di lavoro. Segui questi passaggi:

  1. Scegli Opzioni dal menu Strumenti. Excel visualizza la finestra di dialogo Opzioni.

  2. Assicurati che la scheda Calcolo sia visualizzata. (Vedi figura 1.)

  3. Verificare che la casella di controllo Precisione come visualizzata sia selezionata.

  4. Fare clic su OK.

Ora, Excel utilizza la precisione mostrata sullo schermo in tutti i suoi calcoli e concatenazioni invece di eseguire calcoli con la precisione a 15 cifre completa che normalmente mantiene. Sebbene questo approccio possa essere accettabile per alcuni utenti, per altri presenterà più problemi di quanti ne risolva. Dovrai determinare se puoi vivere con la precisione inferiore per ottenere l’output formattato come ti aspetti.

Ancora un altro approccio consiste nel creare la propria funzione definita dall’utente che restituirà ciò che viene visualizzato per la cella di destinazione, piuttosto che ciò che è memorizzato lì. La seguente macro funzionerà alla grande a questo proposito:

Function FmtText(rng As Range)

Application.Volatile     FmtText = rng.Cells(1).Text End Function

Per usare questa macro, dovresti usare una formula come questa nel tuo foglio di lavoro:

=FmtText(A1) & " : " & FmtText(B1)

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (3213) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: