Separare le celle (Microsoft Excel)
Probabilmente ti è già successo prima: ottieni i dati per il tuo foglio di lavoro e una delle colonne include i nomi. L’unico problema è che i nomi sono tutti raggruppati insieme. Ad esempio, la cella contiene “Allen Wyatt”,
ma preferiresti avere il nome in una colonna e il cognome nella colonna adiacente a destra. Come fai a separare i nomi?
Puoi facilmente utilizzare la funzione Testo in colonne in Excel per separare i tuoi dati. Segui questi passaggi:
-
Seleziona l’intervallo di celle che desideri dividere.
-
Scegli Testo in colonne dal menu Dati. Excel avvia la Conversione guidata testo in colonne. (Vedi figura 1.)
-
Scegli se il testo che hai selezionato è a larghezza fissa o delimitato.
(Nel caso di uno spazio tra il nome e il cognome, il testo sarebbe delimitato.)
-
Fare clic su Avanti.
-
Specifica i delimitatori che desideri che Excel riconosca. Nel caso di separare i nomi, è necessario assicurarsi di utilizzare gli spazi come delimitatori.
-
Fare clic su Fine.
Excel separa le celle nell’intervallo selezionato, separando tutto il testo in corrispondenza del delimitatore specificato. Excel utilizza tuttavia molte colonne necessarie per contenere i dati.
Se non desideri distribuire completamente i tuoi dati tra le colonne, dovrai utilizzare una macro. Ad esempio, se una cella contiene “John Davis, Esq.”, L’utilizzo della funzione Text to Columns comporterà la diffusione dei dati in tre colonne: la prima contenente “John”, la seconda contenente “Davis” (con il virgola) e il terzo contenente “Esq.” Se preferisci che i dati vengano divisi in due colonne (“John” in una e “Davis, Esq.” Nell’altra, la seguente macro sarà utile:
Sub PullApart() Dim FirstCol As Integer, FirstRow As Integer Dim RowCount As Integer Dim ThisRow As Integer Dim j As Integer, k As Integer Dim MyText As String FirstCol = ActiveWindow.RangeSelection.Column FirstRow = ActiveWindow.RangeSelection.Row RowCount = ActiveWindow.Selection.Rows.Count For j = 1 To RowCount ThisRow = FirstRow + j - 1 MyText = Cells(ThisRow, FirstCol).Text k = InStr(MyText, " ") If k > 0 Then Cells(ThisRow, FirstCol + 1).Value = Mid(MyText, k + 1) Cells(ThisRow, FirstCol).Value = Left(MyText, k - 1) End If Next j End Sub
Questa macro esamina ogni cella e lascia tutto fino al primo spazio nella cella selezionata, e sposta tutto dopo lo spazio nella colonna a destra. L’unico “gottcha” con questa macro è assicurarsi che tu non hanno niente nella colonna a destra delle celle che selezioni quando lo esegui.
_Nota: _
Se vuoi sapere come usare le macro descritte su questo pagina (o su qualsiasi altra pagina sui siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
`link: / excelribbon-ExcelTipsMacros [Clicca qui per aprire quella pagina speciale in una nuova scheda del browser | rosoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui:
link: / excelribbon-Pulling_Apart_Cells [Pulling Apart Cells]
.