Come dividere una stringa in base a “:” in MS-Excel?


58

La mia colonna Excel è piena di parole come questa:

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

Voglio dividere ogni parola in base a ":" e inserire 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 i valori corrispondenti in ogni colonna. Come fare questo?

Risposte:


63

Vai alla scheda Dati, quindi all'opzione Testo in colonne. Successivamente, scegli l'opzione "Delimitato", quindi seleziona "altro" e inserisci il delimitatore che desideri.


80

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

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

in C1

=mid(a1,find(":",a1)+1,len(a1))

2
Il valore originale può essere mantenuto anche con l'altra soluzione (è possibile specificare una colonna diversa per memorizzare i nuovi valori), ma questa soluzione mi piace di più perché consente di avere sempre valori aggiornati (ovvero se si modifica A1, B1 e C1 verranno aggiornati, mentre l'opzione da testo a colonna no).
psychowood,

Questa è una soluzione brillante
jsg

26

Se è possibile utilizzare VBA, è possibile utilizzare la Split()funzione. Ecco una funzione definita dall'utente (UDF) che puoi utilizzare in una cella. Si divide alla scelta del personaggio e restituisce l' n -esimo elemento della lista scissione.

Vedi Come posso aggiungere 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

Quindi dovresti inserire:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half

1
Molto bello, non sapevo che era così facile creare le tue formule
cappelli

1
Questo è perfetto per dividere un URL nelle sue parti componenti.
Underverse

7

Incollalo in B1 e riempilo in colonne a destra e righe in basso:

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

Modifica: in precedenza avevo pubblicato la versione localizzata della formula, dove ',' è stato sostituito con ';'. Questo non funziona nella versione americana di Excel:

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


1
Benvenuto in Super User. Potresti aggiungere alcune frasi alla tua risposta per spiegare cosa fa questo e come funziona? Ciò migliorerà il suo valore educativo. Grazie.
fixer1234

Sì, sicuro. Fa la stessa cosa che fa la scheda Testo nelle colonne dalla scheda Dati, tranne che con la formula. È possibile sostituire ":" con un delimitatore diverso o fare riferimento a un delimitatore dall'altra cella.
Hardi Uutma,

Excel dice che questa non è una formula valida quando la si incolla in una cella. Si prega di controllare e aggiornare.
thilina R,

Ciao thilina R! Grazie per aver avvisato. Ho apportato le modifiche alla versione americana di Excel. Per favore fatemi sapere se avete qualche problema con quello ora o se qualcosa non è chiaro.
Hardi Uutma,

Molto bella. L'unica risposta finora che ti consente di gestire tutti i delimitatori che desideri, senza creare la tua funzione.
CWilson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.