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

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

Я бы хотел, чтобы формула была помещена в ячейку B1 "НОВЫЙ ОРЛЕАН" и в ячейку C1 "GREEN BAY".

2 ответа2

2

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

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

И это в С1:

=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()
2

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

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

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

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

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