Вот метод, который требует кучу «вспомогательных столбцов».
Выберите столбец, который находится вне пути; например, AA
или Sheet2!A
(я предполагаю, что вы выбрали AA
), и введите это
=IFERROR(FIND(" ", $A1), "")
в клетку AA1
.
Это находит положение символа в ячейке A1
первого пробела.
Если его нет, FIND()
возвращает ошибку, а IFERROR()
заменяет ошибку пустой строкой. Затем введите
=IFERROR(FIND(" ", $A1, AA1+1), "")
в клетку AB1
. (Обратите внимание, что у A
есть $
а у AA
нет.)
Он находит позицию символа в ячейке A1
второго пробела (т.е. первый после того, который был найден в ячейке AA1
).
Опять же, коды ошибок заменяются пустыми ячейками.
Перетащите это вправо, насколько это необходимо.
(Например, если вы не ожидаете, что когда-либо будет более 24 слов фактического текста, то у вас будет максимум 27 «слов», считая три числа.
Поэтому будет максимум 26 пробелов, поэтому перетаскивания на AZ1
должно быть достаточно.)
Если вы перетащите AB1
в AZ1
, тогда AZ1
должен содержать
=IFERROR(FIND(" ", $A1, AY1+1), "")
Затем (при условии, что вы заполнили диапазон AA1:AZ1
, выше), введите следующее в X1
, Y1
и Z1
:
X1
- =LARGE(AA1:AZ1,3)
Y1
- =LARGE(AA1:AZ1,2)
Z1
- =LARGE(AA1:AZ1,1)
Они становятся местами от третьего до последнего, второго до последнего и последнего пробела в A1
.
Например:
(Изображение выше является ссылкой на полноразмерную копию самого себя.)
где я вручную выделил значения в столбцах AA
- AZ
которые Excel выбрал для столбцов X
, Y
и Z
Теперь это «простой» вопрос использования этих позиций символов для вырезания значений (текстовых и числовых), которые вы хотите:
B1
- =LEFT($A1, X1-1)
C1
- =MID($A1, X1+1, Y1-X1-1)
D1
- =MID($A1, Y1+1, Z1-Y1-1)
E1
- =RIGHT($A1, LEN(A1)-Z1)
что приравнивается к
B1
- все (в A1
) до (но не включая) пробела от третьего до последнего
C1
- все, что находится между третьим и последним пробелом
D1
- все между вторым и последним пробелом
E1
- все после последнего пробела
И, конечно же, перетащите все вниз, насколько это у вас есть данные. Например,
Если у вас есть пробел в конце строки ввода (после последнего числа) или несколько пробелов между любыми двумя числами, это сломается.
Если вы попали в такую ситуацию, я предлагаю вам изучить функцию TRIM()
.