Проблема в следующем: Есть столбец, в нем значения состоящие из нескольких слов разделенных пробелом. Как вытащить на другие ячейки эти слова отдельно от всей ячейки? Первое слово достаточно просто найти - =ПСТР(A1;1;НАЙТИ(" ";A1)-1), а остальные чет не допираю. Помогите пожалуйста.
Найти второе, третье и др слова в ячейке
17.08.2010 11:16:21
|
|
|
|
17.08.2010 11:19:25
{quote}{login=ciklon}{date=17.08.2010 11:16}{thema=Найти второе, третье и др слова в ячейке}{post}Проблема в следующем: Есть столбец, в нем значения состоящие из нескольких слов разделенных пробелом. Как вытащить на другие ячейки эти слова отдельно от всей ячейки? Первое слово достаточно просто найти - =ПСТР(A1;1;НАЙТИ(" ";A1)-1), а остальные чет не допираю. Помогите пожалуйста.{/post}{/quote}
Здравствуйте! Мне вот это очень помогло: |
|
|
|
17.08.2010 11:23:31
Function Substring(Текст, Символ_разделитель, Номер_фрагмента) As String
'--------------------------------------------------------------------------------------- ' URL : ' Purpose : Выделяет из текста n-ный субстринг, ориентируясь по символам-разделителям ' Notes : Substring(текст; символ_разделитель; номер_фрагмента), где ' текст - текст, который делим ' символ_разделитель - символ, который надо считать разделителем фрагментов ' номер_фрагмента - порядковый номер фрагмента, который нам нужен '--------------------------------------------------------------------------------------- On Error Resume Next Substring = Split(Application.Trim(Текст), Символ_разделитель)(Номер_фрагмента - 1) End Function |
|
|
|
17.08.2010 11:24:28
Ну или макрос для допиливания :)
Sub tt() For Each cc In [a1:a4] arr = Split(Application.Trim(cc)) For i = 0 To UBound(arr) cc.Offset(, i + 1) = arr(i) Next Next End Sub |
|
|
|
17.08.2010 11:25:53
|
|
|
|
17.08.2010 11:29:58
Вот такая формула. В А1 текст, N - порядковый номер слова, которое надо вытащить.
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;" ";ПОВТОР(" ";ДЛСТР(A1)));ДЛСТР(A1)*(N-1)+1;ДЛСТР(1))) |
|
|
|
17.08.2010 11:32:03
{quote}{login=Alex_ST}{date=17.08.2010 11:25}{thema=}{post}ИМХО функция намного проще. Всего одна строка и никакого цикла.{/post}{/quote}
Но с другой стороны: Олег 23.06.2008 А как то же самое сделать с помощью макроса, чтобы не вставлять все время в новый лист те же форлулы!!!. |
|
|
|
17.08.2010 11:40:36
Ошибся немного, в конце формулы не ДЛСТР(1), а ДЛСТР(A1)
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;" ";ПОВТОР(" ";ДЛСТР(A1)));ДЛСТР(A1)*(N-1)+1;ДЛСТР(A1))) |
|
|
|
17.08.2010 12:00:15
Пример. Формулу можно протягивать и по вертикали и по горизонтали.
|
|
|
|
18.08.2010 07:12:31
Спасибо за помощь
|
|
|
|
18.08.2010 17:11:45
коллеги, а ведь совершенно забыта такая банальная штука, как "текст по столбцам" ;)
(прячется в меню "Данные") |
|
|
|
18.08.2010 17:19:18
|
|
|
|
21.08.2010 00:45:44
up
|
|
|
|
Читают тему