Spis treści
Samouczek pokazuje, jak używać zupełnie nowej funkcji TEXTSPLIT do dzielenia ciągów znaków w Excelu 365 przez dowolny określony przez użytkownika delimiter.
W Excelu mogą wystąpić różne sytuacje, kiedy trzeba podzielić komórki. We wcześniejszych wersjach byliśmy już wyposażeni w szereg instrumentów do realizacji tego zadania, takich jak Tekst do kolumn czy Wypełnij Flash. Teraz mamy też do tego specjalną funkcję TEXTSPLIT, która potrafi rozdzielić ciąg znaków na wiele komórek w poprzek kolumn lub/i wierszy na podstawie określonych przez użytkownika parametrów.
Funkcja TEXTSPLIT w programie Excel
Funkcja TEXTSPLIT w Excelu dzieli ciągi tekstowe według podanego ogranicznika na kolumny lub/i wiersze. W rezultacie powstaje dynamiczna tablica, która automatycznie rozlewa się na wiele komórek.
Funkcja przyjmuje aż 6 argumentów, z których tylko dwa pierwsze są wymagane.
TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])tekst (wymagane) - tekst do podziału, może być podany jako ciąg znaków lub odwołanie do komórki.
col_delimiter (wymagane) - znak(y) wskazujący(e) gdzie podzielić tekst na kolumny.Jeśli pominięty, ogranicznik wiersza (row_delimiter) musi być zdefiniowany.
ogranicznik wiersza (row_delimiter) (opcjonalnie) - znak (znaki) określający miejsce podziału tekstu na wiersze.
ignorować_puste (opcjonalne) - określa czy ignorować wartości puste czy nie:
- FALSE (domyślnie) - tworzy puste komórki dla kolejnych ograniczników bez wartości pomiędzy nimi.
- TRUE - ignoruj puste wartości, czyli nie twórz pustych komórek dla dwóch lub więcej kolejnych delimitatorów.
tryb dopasowania (opcjonalnie) - określa wrażliwość na wielkość liter dla delimitera. domyślnie włączone.
- 0 (domyślnie) - rozróżnianie wielkości liter
- 1 - wielkość liter nie ma znaczenia
wyściełany (opcjonalne) - wartość, którą należy zastosować w miejsce brakujących wartości w tablicach dwuwymiarowych. Domyślnie jest to błąd #N/A.
Na przykład, aby podzielić ciąg tekstowy w A2 na wiele komórek, używając przecinka i spacji jako separatora, formuła to:
=TEXTSPLIT(A2, ", ")
Dostępność TEXTSPLIT
Funkcja TEXTSPLIT jest dostępna tylko w programie Excel dla Microsoft 365 (Windows i Mac) oraz Excel dla sieci.
Wskazówki:
- W wersjach Excela, w których funkcja TEXTSPLIT nie jest dostępna (innych niż Excel 365), do podziału komórek można użyć kreatora Tekst na kolumny.
- Aby wykonać zadanie odwrotne, czyli połączyć zawartość wielu komórek w jedną przy użyciu określonego ogranicznika, należy użyć funkcji TEXTJOIN.
Podstawowa formuła TEXTSPLIT do dzielenia komórki w Excelu
Na początek zobaczmy, jak wykorzystać formułę TEXTSPLIT w jej najprostszej postaci do dzielenia ciągu tekstowego przez określony delimiter.
Podziel komórkę poziomo przez kolumny
Aby podzielić zawartość danej komórki na wiele kolumn, należy podać odwołanie do komórki zawierającej oryginalny łańcuch dla pierwszej ( tekst ) oraz delimiter, który wyznacza punkt, w którym ma nastąpić podział dla drugiego ( col_delimiter ) argument.
Na przykład, aby oddzielić przecinkiem ciąg w A2 w poziomie, formuła to:
=TEXTSPLIT(A2, ",")
Jako delimiter stosujemy przecinek ujęty w podwójny cudzysłów (",").
W efekcie każdy element oddzielony przecinkiem trafia do indywidualnej kolumny:
Podziel komórkę pionowo przez wiersze
Aby podzielić tekst na wiele wierszy, trzeci argument ( ogranicznik wiersza (row_delimiter) ) to miejsce, w którym umieszczamy delimiter. Drugi argument ( col_delimiter ) jest w tym przypadku pomijany.
Na przykład, aby rozdzielić wartości w A2 na różne wiersze, formuła to:
=TEXTSPLIT(A2, ,",")
Zwróć uwagę, że w obu przypadkach formuła jest wprowadzana tylko w jednej komórce (C2). W sąsiednich komórkach zwracane wartości rozlewają się automatycznie. Powstała w ten sposób tablica (którą nazywamy zakresem rozlewania) jest wyróżniona niebieskim obramowaniem wskazującym, że wszystko, co znajduje się w jej wnętrzu, jest obliczane przez formułę w lewej górnej komórce.
Podziel tekst na podciągi
W wielu przypadkach wartości w łańcuchu źródłowym są oddzielone ciągiem znaków, przecinek i spacja są typowym przykładem. Aby obsłużyć ten scenariusz, użyj podłańcucha dla delimitera.
Na przykład, aby rozdzielić tekst w A2 na wiele kolumn za pomocą przecinka i spacji, należy użyć ciągu ", " dla col_delimiter .
=TEXTSPLIT(A2, ", ")
Ta formuła trafia do B2, a następnie kopiujesz ją w dół przez tyle komórek, ile potrzeba.
Podziel łańcuch na kolumny i wiersze jednocześnie
Aby podzielić ciąg tekstowy na wiersze i kolumny jednocześnie, zdefiniuj oba delimitery w swojej formule TEXTSPLIT.
Na przykład, aby podzielić ciąg tekstowy w A2 na kolumny i wiersze, dostarczamy:
- Znak równości ("=") dla col_delimiter
- Przecinek i spacja (", ") dla ogranicznik wiersza (row_delimiter)
Pełna formuła przyjmuje taką postać:
=TEXTSPLIT(A2, "=", ", ")
W rezultacie otrzymujemy tablicę 2-D składającą się z 2 kolumn i 3 wierszy:
Oddzielanie komórek za pomocą wielu delimitatorów
Aby obsłużyć wiele lub niespójne ograniczniki w łańcuchu źródłowym, użyj stałej tablicowej, takiej jak {"x", "y", "z"} dla argumentu ogranicznika.
Na poniższym zrzucie ekranu tekst w A2 jest ograniczony zarówno przecinkami (","), jak i średnikami (";") ze spacjami i bez spacji. Aby podzielić ciąg pionowo na wiersze przez wszystkie 4 odmiany delimitera, formuła to:
=TEXTSPLIT(A2, , {",",", ",";", "})
Możesz też zawrzeć w tablicy tylko przecinek (",") i średnik (";"), a następnie usunąć dodatkowe spacje za pomocą funkcji TRIM:
=TRIM(TEXTSPLIT(A2, , {",",";"}))
Podziel tekst ignorując puste wartości
Jeśli łańcuch zawiera dwa lub więcej kolejnych ograniczników bez wartości pomiędzy nimi, możesz wybrać, czy zignorować takie puste wartości, czy nie. Zachowanie to jest kontrolowane przez czwartą opcję ignorować_puste parametr, który domyślnie przyjmuje wartość FALSE.
Domyślnie funkcja TEXTSPLIT nie ignoruje pustych wartości. Domyślne zachowanie działa ładnie dla danych strukturalnych, jak w poniższym przykładzie.
W tej przykładowej tabeli brakuje punktacji w niektórych ciągach znaków.Formuła TEXTSPLIT z ignorować_puste argument pominięty lub ustawiony na FALSE doskonale radzi sobie z tym przypadkiem, tworząc pustą komórkę dla każdej pustej wartości.
=TEXTSPLIT(A2, ", ")
Albo
=TEXTSPLIT(A2, ", ", FALSE)
W efekcie wszystkie wartości pojawiają się w odpowiednich kolumnach.
W przypadku, gdy łańcuchy zawierają jednorodne dane, może być uzasadnione ignorowanie pustych wartości. W tym celu należy ustawić ignorować_puste na TRUE lub 1.
Na przykład, aby podzielić t poniższe ciągi umieszczając każdą umiejętność w osobnej komórce bez odstępów, formuła to:
=TEXTSPLIT(A2, ", ", ,TRUE)
W tym przypadku brakujące wartości pomiędzy kolejnymi delimitatorami są całkowicie ignorowane:
Podział komórek z uwzględnieniem wielkości liter lub bez uwzględnienia wielkości liter
Aby kontrolować wrażliwość delimitera na wielkość liter, użyj piątego argumentu, tryb dopasowania .
Domyślnie, tryb dopasowania jest ustawiona na 0, dzięki czemu TEXTSPLIT rozróżnianie wielkości liter .
W tym przykładzie liczby są oddzielone małymi literami "x" i dużymi "X".
Formuła z domyślną czułością wielkości liter akceptuje tylko małe litery "x" jako separator:
=TEXTSPLIT(A2, " x ")
Proszę zwrócić uwagę, że delimiter ma spację po obu stronach litery " x ", aby zapobiec wiodącym i spóźnionym spacjom w wynikach.
Aby wyłączyć wrażliwość na wielkość liter, podajesz 1 dla tryb dopasowania aby zmusić formułę TEXTSPLIT do ignorowania wielkości liter:
=TEXTSPLIT(A2, " x ", , ,1)
Teraz wszystkie ciągi są podzielone poprawnie przez dowolny delimiter:
Wypełnij brakujące wartości w tablicy 2D
Ostatni argument funkcji TEXTSPLIT, wyściełany , przydaje się w przypadku braku jednej lub więcej wartości w ciągu źródłowym. Gdy taki ciąg jest podzielony zarówno na kolumny, jak i wiersze, domyślnie Excel zwraca błędy #N/A zamiast brakujących wartości, aby nie maglować struktury tablicy dwuwymiarowej.
W poniższym ciągu nie ma znaku "=" (. col_delimiter Aby zachować integralność wynikowej tablicy, TEXTSPLIT wypisuje #N/A obok "Score".
Aby wynik był bardziej przyjazny dla użytkownika, możesz zastąpić błąd #N/A dowolną wartością. Po prostu wpisz pożądaną wartość w polu wyściełany argument.
W naszym przypadku może to być myślnik ("-"):
=TEXTSPLIT(A2, "=", ", ", , ,,-")
Lub pusty ciąg znaków (""):
=TEXTSPLIT(A2, "=", ", ", , ,")
Teraz, gdy poznałeś już praktyczne zastosowania każdego argumentu funkcji TEXTSPLIT, omówmy kilka zaawansowanych przykładów, które mogą pomóc Ci poradzić sobie z nietrywialnymi wyzwaniami w Twoich arkuszach kalkulacyjnych Excela.
Podziel daty na dzień, miesiąc i rok
Aby podzielić datę na poszczególne jednostki, najpierw trzeba przekonwertować datę na tekst, ponieważ funkcja TEXTSPLIT zajmuje się ciągami tekstowymi, podczas gdy daty w Excelu są liczbami.
Najprostszym sposobem konwersji wartości liczbowej na tekst jest użycie funkcji TEXT. Należy tylko pamiętać o podaniu odpowiedniego kodu formatu dla daty.
W naszym przypadku wzór to:
=TEXT(A2, "m/d/yyyy")
Następnym krokiem jest zagnieżdżenie powyższej funkcji w pierwszym argumencie TEXTSPLIT i wprowadzenie odpowiedniego ogranicznika dla drugiego lub trzeciego argumentu, w zależności od tego, czy dzielimy na kolumny czy wiersze. W tym przykładzie, jednostki daty są ograniczone ukośnikami, więc używamy "/" dla "/". col_delimiter argument:
=TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")
Dzielenie komórek i usuwanie określonych znaków
Wyobraź sobie to: podzieliłeś długi ciąg na kawałki, ale wynikowa tablica nadal zawiera kilka niechcianych znaków, takich jak nawiasy na zrzucie ekranu poniżej:
=TEXTSPLIT(A2, " ", "; ")
Aby usunąć nawias otwierający i zamykający za jednym razem, należy zagnieździć dwie funkcje SUBSTITUTE jedna w drugiej (każda zastępuje jeden nawias pustym łańcuchem) i użyć formuły TEXTSPLIT dla tekst argument wewnętrznego SUBSTITUTE:
=SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")
Wskazówka. Jeśli ostateczna tablica zawiera zbyt wiele dodatkowych znaków, możesz je oczyścić, stosując jedną z metod opisanych w tym artykule: Jak usunąć niechciane znaki w Excelu.
Dzielenie łańcuchów z pominięciem pewnych wartości
Załóżmy, że chcesz rozdzielić poniższe ciągi na 4 kolumny: Imię i nazwisko , Nazwisko , Wynik oraz Wynik Problem polega na tym, że niektóre ciągi zawierają tytuł "Pan" lub "Pani", z powodu których wszystkie wyniki są błędne:
Rozwiązanie nie jest oczywiste, ale dość proste :)
Oprócz istniejących ograniczników, którymi są spacja (" ") oraz przecinek i spacja (", "), dołączasz ciągi "Pan " i "Pani " do col_delimiter aby funkcja używała samych tytułów do oddzielania tekstu. Aby ignorować puste wartości, ustawiamy metodę ignorować_puste na TRUE.
=TEXTSPLIT(A2, {" ",", ", "Pan ", "Pani"}, ,TRUE)
Teraz efekty są absolutnie doskonałe!
Alternatywy TEXTSPLIT
W wersjach Excela, w których funkcja TEXTSPLIT nie jest obsługiwana, można dzielić ciągi znaków, stosując różne kombinacje funkcji SZUKAJ / ZNAJDŹ z LEWYM, PRAWYM i ŚREDNIM W szczególności:
- Wyszukiwanie bez rozróżniania wielkości liter lub wyszukiwanie z rozróżnianiem wielkości liter określa pozycję ogranicznika w łańcuchu, a
- Funkcje LEFT, RIGHT i MID wyodrębniają podłańcuch przed, po lub pomiędzy dwoma wystąpieniami ogranicznika.
W naszym przypadku, aby podzielić wartości rozdzielone przez przecinek i spacja , wzory idą następująco.
Aby wyodrębnić nazwę:
=LEFT(A2, SEARCH(",", A2, 1) -1)
Aby wyciągnąć wynik:
=MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)
Aby uzyskać wynik:
=RIGHT(A2, LEN(A2) - SEARCH(",", A2, SEARCH(",", A2) + 1)-1)
Aby uzyskać szczegółowe wyjaśnienie logiki formuł, zobacz Jak dzielić ciągi według znaków lub masek.
Należy pamiętać, że w odróżnieniu od funkcji TEXTSPLIT tablicy dynamicznej, formuły te stosują tradycyjne podejście jedna formuła-jedna komórka. Wprowadzasz formułę w pierwszej komórce, a następnie przeciągasz ją w dół kolumny, aby skopiować do poniższych komórek.
Poniższy zrzut ekranu przedstawia wyniki:
Tak wygląda dzielenie komórek w Excelu 365 za pomocą TEXTSPLIT lub alternatywnych rozwiązań we wcześniejszych wersjach. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!
Zeszyt ćwiczeń do pobrania
Funkcja TEXTSPLIT do dzielenia ciągów znaków - przykłady formuł (plik .xlsx)