Если вам нужно разделить не три слова, а затем, с вашей исходной строкой в A1, введите формулу ниже в B1 и заполните до нужного значения:
=IFERROR(MID($A1,IFERROR(AGGREGATE(15,6,1/((CODE(MID($A1,seq,1))>=65)*(CODE(MID($A1,seq,1))<=90))*(seq),COLUMNS($A:A)),""),IF(IFERROR(AGGREGATE(15,6,1/((CODE(MID($A1,seq,1))>=65)*(CODE(MID($A1,seq,1))<=90))*(seq),COLUMNS($A:B)),"")="",99,IFERROR(AGGREGATE(15,6,1/((CODE(MID($A1,seq,1))>=65)*(CODE(MID($A1,seq,1))<=90))*(seq),COLUMNS($A:B)),"")-IFERROR(AGGREGATE(15,6,1/((CODE(MID($A1,seq,1))>=65)*(CODE(MID($A1,seq,1))<=90))*(seq),COLUMNS($A:A)),""))),"")
, где seq
- это Именованная формула , которая генерирует массив чисел {1...255}
и ссылается на:
=ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))
Код вернет начальную точку каждой буквы в верхнем регистре, а затем использует функцию MID
для возврата подстроки между этой и следующей заглавной буквой. Затем происходит проверка ошибок.
