2012-10-03 16:16:00 +0000 2012-10-03 16:16:00 +0000
58
58
Advertisement

Come dividere una stringa basata su ":" in MS-Excel?

Advertisement

La mia colonna excel è piena di parole come questa:

1.) ABC:DCF
2.) DCF:FED

Voglio dividere ogni parola in base a “ : ” e mettere il risultato in colonne adiacenti in modo che “ABC:DCF” nella cella “A:1” diventi “ABC” nella cella “B:1” e “DCF” nella cella “C:1” e anche valori corrispondenti in ogni colonna. Come si fa?

Advertisement
Advertisement

Risposte (4)

84
84
84
2012-10-03 16:34:14 +0000

Il testo alle colonne funzionerà. Un'altra opzione, se si vuole mantenere il valore originale, è quella di utilizzare le formule: in B1

=left(a1,find(":",a1)-1)

in C1

=mid(a1,find(":",a1)+1,len(a1))
63
63
63
2012-10-03 16:20:12 +0000

Andare alla scheda Dati, quindi l'opzione Text to Columns (Testo alle colonne). In seguito, scegliere l'opzione “Delimitato” e poi selezionare “altro” e mettere un delimitatore a piacere.

26
Advertisement
26
26
2012-10-03 18:42:46 +0000
Advertisement

Se è possibile utilizzare VBA, allora è possibile utilizzare la funzione Split(). Ecco una funzione definita dall'utente (UDF) che potete usare in una cella. Si divide in base alla scelta del carattere e restituisce il nesimo elemento della lista di divisione.

Vedi Come si aggiunge VBA in MS Office? per informazioni su come definire un UDF.

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function
``` ```
=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half

Quindi dovresti inserire:

&001

8
8
8
2016-09-05 16:44:45 +0000

Incollatelo in B1 e riempitelo nelle colonne a destra e nelle righe in basso:

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

Modifica: in precedenza ho pubblicato la versione localizzata della formula, dove “,” è stato sostituito con “;”. Questo non funziona nella versione USA di Excel:

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))

Advertisement

Domande correlate

6
13
9
10
5
Advertisement