
У меня в ячейке 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()