Вопрос в следующем: В ячейках столбца находится различная текстовая информация. Во всех ячейках в тексте встречается одинаковая фраза. Нужно извлечь содержимое значения ячейки после этой фразы. Количество слов как до этой фразы, так и после нее всегда разное. В примере это понятнее.. Желательнее решение на формулах - без VBA.. Спасибо!
{quote}{login=vveco}{date=12.04.2011 09:48}{thema=как получить часть содержимого ячейки?}{post}Вопрос в следующем: В ячейках столбца находится различная текстовая информация. Во всех ячейках в тексте встречается одинаковая фраза. Нужно извлечь содержимое значения ячейки после этой фразы. Количество слов как до этой фразы, так и после нее всегда разное. В примере это понятнее.. Желательнее решение на формулах - без VBA.. Спасибо!{/post}{/quote}
На UDF проще: =Substring(A3;"Правильный ответ: ";2;2) Но ведь не надо...
Function Substring(Текст As String, Символ_разделитель As String, _ Начальный_Номер_фрагмента As Long, Конечный_Номер_фрагмента As Long) As String '--------------------------------------------------------------------------------------- ' URL : http://www.planetaexcel.ru/tip.php?aid=54 ' Purpose : Выделяет из текста субстринг/и, ориентируясь по символам-разделителям ' Notes : Substring(текст; символ_разделитель; Начальный_Номер_фрагмента, Конечный_Номер_фрагмента), где ' текст - текст, который делим ' символ_разделитель - символ, который надо считать разделителем фрагментов ' Начальный_Номер_фрагмента - порядковый номер фрагмента, с которого нужна выборка ' Конечный_Номер_фрагмента - порядковый номер фрагмента, по который нужна выборка '--------------------------------------------------------------------------------------- On Error Resume Next Dim sArr() As String, li As Long sArr = Split(Application.Trim(Текст), Символ_разделитель) If Конечный_Номер_фрагмента > 0 Then Начальный_Номер_фрагмента = Начальный_Номер_фрагмента - 1 Конечный_Номер_фрагмента = Конечный_Номер_фрагмента - 1 For li = Начальный_Номер_фрагмента To Конечный_Номер_фрагмента Substring = IIf(li = Начальный_Номер_фрагмента, sArr(li), Substring & _ Символ_разделитель & sArr(li)) Next li Else Substring = Split(Application.Trim(Текст), _ Символ_разделитель)(Начальный_Номер_фрагмента - 1) End If End Function
Замечательно! Спасибо! Маленький вопрос - в исходном столбце в конце текста в ячейках стоит пробел и он этой формулой переносится в итоговую ячейку - а можно ли отредактировать формулу так, чтобы итог был без пробела на конце? или проще исходный столбец отредактировать? как тогда для него формулу записать? :)
для итога без пробела на конце надо к функциям, которые вам подсказали, дополнительно "снаружи" применить функцию =СЖПРОБЕЛЫ(текст), где вместо "текст" пишете подсказанные функции.
Спасибо всем большое! очень помогли.. Посмотрите если не трудно, то что получилось - там в итоговом столбце собирается вопрос для теста в LMS Moodle. И где то ошибка в результате которой добавляется лишний знак "~" ко второму варианту не верного ответа..