Извлечь целое слово из строки, содержащей определенную букву или символ

Извлечь целое слово из строки, содержащей определенную букву или символ

Мне бы хотелось извлечь из ячейки только то слово, которое содержит определенный символ («=») в тексте.

A2:  Dolly made me a homemade=cake and some muffins
A3:  we had cheese=cake for dinner
A4: Everyone loves how the bakery makes some awesome=cakes

Я хотел бы, чтобы следующее из столбца (A2:A4) предоставило следующие результаты в столбце (B2:B4).

B2:  homemade=cake
B3:  cheese=cake
B4:  awesome=cakes

Я попробовал следующее решение с функциями рабочего листа.

A2: Johnny made his own dinner=lastnight and then cleaned the kitchen

=TRIM(TRIM(IFERROR(RIGHT(SUBSTITUTE(LEFT(A2,SEARCH(" ",A2&" ",SEARCH("=",A2))-1)," ",REPT(" ",LEN(A2))),LEN(C246)),""))),""),

Эта формула, как вы можете видеть, не работает, поскольку она извлекает данные только справа от символа ("=") со следующими результатами. В то время как я ищу решение, которое извлечет все слово (справа и слева) от символа ("=").

решение1

Попробуйте следующееУсерДопределенФсоборование(УДФ)

Public Function Equals(inpt As String) As String
   Equals = ""
   ary = Split(Application.WorksheetFunction.Trim(inpt), " ")
   For Each a In ary
      If InStr(1, a, "=") > 0 Then
         Equals = a
         Exit Function
      End If
   Next a
End Function

введите описание изображения здесь

Пользовательские функции (UDF) очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте текст и закройте окно VBE

Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить UDF:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы использовать UDF из Excel:

=равно(A1)

Чтобы узнать больше о макросах в целом, см.:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

и

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

а для получения подробной информации о UDF см.:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Для работы этого метода должны быть включены макросы!

ПРАВКА №1:

Вы можете сделать это безВБА, используя ту же методологию. С данными вА1, вС1входить:

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

и копировать поперек. Затем вВ1входить:

=INDEX(C1:IV1,MATCH("*=*",C1:IV1,0))

введите описание изображения здесь

решение2

Excel имеет ряд текстовых функций, которые могут помочь вам извлечь слово или текст из другой текстовой строки. Какую функцию или комбинацию функций использовать, зависит от вашей ситуации. Пример: предположим, что ячейка A1 содержит текстовую строку: «Творчество требует смелости отказаться от определенности»

1. Чтобы получить первые 5 символов строки, мы используем функцию LEFT: =LEFT(A1,5) Результат — «Creat»

2. Чтобы получить последние 11 символов строки, мы используем функцию ПРАВСИМВ: =ПРАВСИМВ(A1,11) Результат — «определенности»

3. Чтобы получить 7 символов из строки, начиная с позиции 10, используем функцию MID: =MID(A1,10,7) Результат — «y requi».

4. Чтобы получить первое слово строки, используем функции ЛЕВСИМВ и НАЙТИ: =ЛЕВСИМВ(A1,(НАЙТИ(” “,A1)-1)) Результат — «Творчество».

- Смотрите больше на:http://www.exceldigest.com/myblog/2009/02/01/как-извлечь-текст-из-другой-текстовой-строки/#sthash.yNDHU7Xe.dpuf

Связанный контент