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.