Sbarazzarsi di caratteri non stampabili in modo intelligente (Microsoft Excel)
Se lavori con file che provengono da una fonte non Excel, a volte puoi finire con caratteri nelle tue celle che Excel non sa come visualizzare correttamente. Ad esempio, potresti avere un file di testo delimitato da virgole generato dal software di contabilità della tua azienda e caricare il file in Excel. In alcune celle potresti notare che ci sono piccole scatole. Questi rappresentano caratteri non stampabili. Excel visualizza le caselle piccole in modo che tu sappia che il carattere è lì, anche se non può essere visualizzato o stampato.
Per sbarazzarti di questi caratteri, prova a utilizzare la funzione Trova e sostituisci di Excel. Prova questi passaggi:
-
All’interno della cella che contiene una delle caselle piccole, evidenzia la casella e premi Ctrl + C. Questo copia il personaggio negli Appunti.
-
Scegli Sostituisci dal menu Modifica o premi Ctrl + H. Excel visualizza la scheda Sostituisci della finestra di dialogo Trova e sostituisci. (Vedi figura 1.)
-
Con il punto di inserimento nella casella Trova, premi Ctrl + V. Ciò incolla il contenuto degli Appunti (il carattere offensivo) nella casella Trova. Il personaggio molto probabilmente non assomiglierà alla piccola casella che hai selezionato e copiato nel passaggio 1.
-
Se non è stato incollato nulla nel passaggio 3, chiudere la finestra di dialogo e riprovare. Se non è ancora incollato nulla, non sarai in grado di utilizzare Trova e sostituisci per eliminare i caratteri non stampabili e puoi saltare il resto di questi passaggi.
-
Se desideri eliminare solo i caratteri, assicurati che non ci sia nulla nella casella Sostituisci con. Se desideri sostituire i caratteri con spazi, inserisci un singolo spazio nella casella Sostituisci con.
-
Fare clic su Sostituisci tutto.
Questo approccio può o non può funzionare, dipende principalmente da Excel e se ti consente di copiare accuratamente il carattere offensivo nel passaggio 1. Se funziona, hai imparato una tecnica preziosa per sbarazzarti dei caratteri cattivi. Se non funziona, dovresti provare un approccio diverso.
Una cosa da provare è usare Word nelle operazioni di “pulizia”. Copia i dati da Excel a un documento di Word (incollalo come testo normale), quindi sostituisci i caratteri offensivi. È quindi possibile incollare nuovamente i dati in Excel. Alcune persone riferiscono di ottenere esattamente i risultati desiderati utilizzando questo approccio di andata e ritorno per lavorare con i dati.
Ovviamente puoi usare una macro per sbarazzarti dei personaggi offensivi.
Non è troppo difficile creare la propria versione della funzione del foglio di lavoro CLEAN che, invece di rimuovere semplicemente i caratteri non stampabili, li sostituisce con spazi. Considera la seguente macro di esempio:
Function ReplaceClean1(sText As String, Optional sSubText As String = " ") Dim J As Integer Dim vAddText vAddText = Array(Chr(129), Chr(141), Chr(143), Chr(144), Chr(157)) For J = 1 To 31 sText = Replace(sText, Chr(J), sSubText) Next For J = 0 To UBound(vAddText) sText = Replace(sText, vAddText(J), sSubText) Next ReplaceClean1 = sText End Function
Puoi utilizzare questa funzione nel modo seguente all’interno del tuo foglio di lavoro:
=ReplaceClean1(B14)
In questo caso, tutti i caratteri non stampabili nella cella B14 vengono sostituiti con uno spazio. Se vuoi che i caratteri vengano sostituiti con qualcos’altro, fornisci semplicemente il testo con cui sostituirlo. L’esempio seguente sostituisce i caratteri non stampabili con un trattino:
=ReplaceClean1(A1,"-")
Il seguente utilizzo rimuove semplicemente i caratteri non stampabili, lo stesso della funzione CLEAN:
=ReplaceClean1(A1,"")
Se guardi indietro alla macro ReplaceClean1 presentata in precedenza, vedrai che utilizza la funzione Sostituisci. Questa funzione VBA non è disponibile in tutte le versioni di VBA utilizzate con le diverse versioni di Excel. Se provi la macro e ottieni un errore su una delle righe che usano la funzione Sostituisci, usa invece questa versione della macro SostituisciClean:
Function ReplaceClean2(sText As String, Optional sSubText As String = " ") Dim J As Integer Dim vAddText Dim aWF As WorksheetFunction Set aWF = Application.WorksheetFunction vAddText = Array(Chr(129), Chr(141), Chr(143), Chr(144), Chr(157)) For J = 1 To 31 sText = aWF.Substitute(sText, Chr(J), sSubText) Next For J = 0 To UBound(vAddText) sText = aWF.Substitute(sText, vAddText(J), sSubText) Next ReplaceClean2 = sText Set aWF = Nothing End Function
_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 (2947) 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: