Formuła programu Excel: podziel tekst z separatorem -

Formuła ogólna

=TRIM(MID(SUBSTITUTE(A1,delim,REPT(" ",LEN(A1))),(N-1)*LEN(A1)+1,LEN(A1)))

Podsumowanie

Aby podzielić tekst według dowolnego separatora (przecinek, spacja, kreska itp.), Możesz użyć formuły opartej na funkcjach TRIM, MID, SUBSTITUTE, REPT i LEN. W przedstawionym przykładzie formuła w C5 to:

=TRIM(MID(SUBSTITUTE($B5,"|",REPT(" ",LEN($B5))),(C$4-1)*LEN($B5)+1,LEN($B5)))

Uwaga: odniesienia do B5 i C4 są odniesieniami mieszanymi, aby umożliwić skopiowanie wzoru w poprzek i w dół.

Wyjaśnienie

Istotą tej formuły jest zastąpienie danego separatora dużą liczbą spacji za pomocą funkcji SUBSTITUTE i REPT, a następnie użycie funkcji MID w celu wyodrębnienia tekstu związanego z „n-tym wystąpieniem” oraz funkcji TRIM w celu usunięcia dodatkowego spacji.

W tym fragmencie separator (separator) jest zastępowany liczbą spacji równą całkowitej długości ciągu:

SUBSTITUTE(A1,delim,REPT(" ",LEN(A1)))

Następnie formuła używa funkcji MID do wyodrębnienia n-tego podciągu. Punkt początkowy jest obliczany za pomocą poniższego kodu, gdzie N oznacza „n-ty”:

(N-1)*LEN(A1)+1

Łączna liczba wyodrębnionych znaków jest równa długości pełnego ciągu tekstowego. Następnie funkcja TRIM usuwa wszystkie dodatkowe spacje i zwraca tylko n-ty ciąg.

Wyodrębnij tylko jedną instancję

Chociaż przykład jest skonfigurowany do wyodrębniania 5 podciągów z tekstu w kolumnie B, możesz łatwo wyodrębnić tylko 1 wystąpienie. Na przykład, aby wyodrębnić tylko czwartą pozycję (miasto), możesz użyć:

=TRIM(MID(SUBSTITUTE(B5,"|",REPT(" ",LEN(B5))),(4-1)*LEN(B5)+1,LEN(B5)))

Funkcja Tekst do kolumn

W przypadku ręcznych, jednorazowych konwersji program Excel ma wbudowaną funkcję o nazwie „Tekst na kolumny”, która umożliwia dzielenie tekstu w komórkach za pomocą wybranego separatora. Tę funkcję znajdziesz na karcie Dane na wstążce w sekcji Narzędzia danych.

Interesujące artykuły...