57

Мой столбец Excel заполнен такими словами:

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

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

4 ответа4

79

Текст в столбцы будет работать. Другой вариант, если вы хотите сохранить исходное значение, это использовать формулы:
в B1

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

в С1

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

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

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
6

Вставьте его в 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))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .