Як розділити рядок на основі ":" в MS-Excel?


58

Мій стовпчик excel заповнений такими словами:

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

Я хочу розділити кожне слово на основі ":" і поставити результат у сусідні стовпці таким чином, що "ABC: DCF" у комірці "A: 1" стає "ABC" у комірці "B: 1" та "DCF" у комірці " C: 1 ", а також відповідні значення у кожному стовпці. Як це зробити?

Відповіді:


63

Перейдіть на вкладку "Дані", а потім "Текст у стовпці". Пізніше виберіть варіант "Розмежований", а потім виберіть "інше" та поставте будь-який роздільник, який ви хочете.


80

Текст до стовпців працюватиме. Іншим варіантом, якщо ви хочете зберегти початкове значення, є використання формул:
у B1

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

в С1

=mid(a1,find(":",a1)+1,len(a1))

2
Вихідне значення може зберігатися навіть у іншому рішенні (ви можете вказати інший стовпець для зберігання нових значень), але мені це рішення подобається краще, оскільки воно дозволяє завжди мати оновлені значення (тобто якщо ви змінюєте A1, B1 та C1 оновлюються, тоді як параметр "текст у стовпець" не виконує).
psychowood

Це геніальне рішення
jsg

26

Якщо ви можете використовувати VBA, ви можете скористатися Split()функцією. Ось визначена користувачем функція (UDF), яку ви можете використовувати в комірці. Він розбивається на ваш вибір персонажа і повертає n- й елемент розбитого списку.

Див. Як додати VBA в MS Office? для інформації про те, як визначити 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

1
Дуже добре, не знав, що так легко створити свої власні формули
корів

1
Це ідеально підходить для розділення URL-адреси на її складові частини.
Підземний

7

Вставте його в B1 і заповніть його стовпцями праворуч і рядками вниз:

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

Редагувати: я раніше розміщував локалізовану версію формули, де ',' було замінено на ';'. Це не працює в американській версії Excel:

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


1
Ласкаво просимо до Супер Користувача. Чи можете ви додати до своєї відповіді кілька речень, щоб пояснити, що це робить і як це працює? Це підвищить її навчальну цінність. Дякую.
fixer1234

Так, звичайно. Це робить те саме, що робить текст у стовпці з вкладки «Дані», за винятком формули. Ви можете замінити ":" іншим роздільником або посилатися на роздільник від іншої комірки.
Харді Утма

Excel каже, що це неправильна формула, коли ви вставляєте її в комірку. Перевірте та оновіть.
thilina R

Привіт, Тіліна Р! Дякуємо за повідомлення. Я вніс коригування для американської версії Excel. Будь ласка, дайте мені знати, чи є у вас проблеми з цим зараз чи якщо щось незрозуміле.
Hardi Uutma

Дуже хороша. Єдина відповідь на даний момент, яка дозволяє мати справу з якоюсь великою кількістю роздільників, як ви хочете, без створення власної функції.
CWilson
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.