Формула Excel для извлечения текста

Формула Excel для извлечения текста

У меня в ячейке A1 есть следующее:

NEW ORLEANS (0-0) at GREEN BAY (0-0)

Мне нужна формула для помещения в ячейку B1 «NEW ORLEANS» и в ячейку C1 «GREEN BAY».

решение1

Чтобы попасть в первую команду:

=LEFT(A1,FIND("(",A1)-2)

Чтобы получить вторую команду:

=MID(A1,FIND(" at ",A1)+4,FIND("(",A1,FIND(")",A1))-FIND(" at ",A1)-5)

решение2

Итак, если у вас эта ячейка была в A1, то это в B1:

=LEFT(A1, FIND("(", A1)-2)

А это в C1:

=MID(A1, FIND(")", A1) + 4, LEN(A1)-FIND(")", A1)-9)

Обратите внимание, что это очень зависит от того, является ли предоставленный вами пример репрезентативным для макета текста в других ячейках. Он основан на поиске скобок в строке. На самом деле я только что понял, что он, вероятно, сломается, если цифры во втором (0-0) станут двузначными. Чтобы учесть это, вам придется искать второй набор скобок, чтобы определить длину для вызова Mid(). Честно говоря, если бы это была моя проблема, которую нужно было решить, то я думаю, что я бы просто написал макрос VBA с использованием split.

Итак, через VBA я бы сделал что-то вроде этого. Добавьте эти две функции:

Function GetFirstTeam()
    Application.Volatile
    GetFirstTeam = Trim(Split(ActiveCell.Offset(0, -1), "(")(0))
End Function

Function GetSecondTeam()
    Application.Volatile
    GetSecondTeam = Trim(Split(Split(ActiveCell.Offset(0, -2), " at ")(1), "(")(0))
End Function

Затем в B1:

=GetFirstTeam()

И в С1:

=GetSecondTeam()

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