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

Jak podzielić łańcuch oparty na ":" w MS-Excel?

Advertisement

Moja kolumna w Excelu jest wypełniona takimi słowami:

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

Chcę podzielić każde słowo na podstawie “ : ” i umieścić wynik w sąsiednich kolumnach tak, aby “ABC:DCF” w komórce “A:1” stało się “ABC” w komórce “B:1” i “DCF” w komórce “C:1”, a także odpowiednie wartości w każdej kolumnie. Jak to zrobić?

Advertisement
Advertisement

Odpowiedzi (4)

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

Tekst do kolumn będzie działać. Inną opcją, jeśli chcesz zachować oryginalną wartość, jest użycie formuł: w B1

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

w C1

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

Przejdź do zakładki Dane, następnie opcję Tekst do Kolumny. Następnie wybierz opcję “Delimited”, a następnie wybierz opcję “other” i umieść dowolny delimiter.

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

Jeśli możesz korzystać z VBA, możesz skorzystać z funkcji Split(). Oto funkcja zdefiniowana przez użytkownika (UDF), której można używać w komórce. Dzieli się ona na wybraną przez Ciebie postać i zwraca nty element listy podziału.

Zobacz Jak dodać VBA w MS Office? aby dowiedzieć się jak zdefiniować UDF.

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function

Więc musisz wpisać:

=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

Wklej go do B1 i wypełnij do kolumn po prawej stronie i wierszy w dół:

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

Edit: Wcześniej zamieściłem zlokalizowaną wersję formuły, gdzie ‘,’ został zastąpiony ‘;’. To nie działa w amerykańskiej wersji Excel:

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

Advertisement

Pytania pokrewne

9
6
13
9
10
Advertisement