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

Hoe splits je een string op basis van ":" in MS-Excel?

Mijn excel kolom is gevuld met woorden als deze:

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

Ik wil elk woord splitsen op basis van “ : ” en zet het resultaat in aangrenzende kolommen zodanig dat “ABC:DCF” in cel “A:1” “ABC” wordt in cel “B:1” en “DCF” in cel “C:1” en ook overeenkomstige waarden in elke kolom. Hoe dit te doen?

Antwoorden (4)

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

Tekst naar kolommen werkt. Een andere optie, als u de originele waarde wilt behouden, is om formules te gebruiken: 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

Ga naar het tabblad Gegevens en vervolgens naar de optie Tekst naar Kolommen. Kies later de optie “Delimited” en selecteer dan “other” en zet een willekeurige begrenzer.

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

Als u gebruik kunt maken van VBA dan kunt u gebruik maken van de Split() functie. Hier is een User-Defined Function (UDF) die u in een cel kunt gebruiken. Het splitst zich op bij de tekenkeuze en geeft het nde element van de splitsingslijst terug.

Zie Hoe voeg ik VBA toe in MS Office? voor informatie over het definiëren van een 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
8
8
8
2016-09-05 16:44:45 +0000

Plak het op B1 en vul het in de kolommen rechts en rijen onderaan:

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

Edit: Ik heb eerder een gelokaliseerde versie van de formule gepost, waar ‘,’ werd vervangen door ‘;’. Dat werkt niet in de US-versie van Excel:

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