3

У меня есть таблица Excel со строками данных, как показано ниже. Существует код с названием продукта, а затем номер.

QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149

Как разделить каждое поле на столбец?

Я попробовал "разбить текст на столбцы" в Excel, используя опцию с разделителями и разделив пробелами, но тот факт, что некоторые названия продуктов содержали более одного слова, приводил к тому, что некоторые цифры оказались в неправильном столбце. Например,

Code     Name       Number       
QA32    Product      One       (Large)    23
AZ63    Product      Two         96
PR65    Product      Three       149

Это желаемый результат:

Code        Name                Number
QA32    Product One (Large)       23
AZ63    Product Two               96
PR65    Product Three             149

Помощь приветствуется!

2 ответа2

2

Используйте FIND-function чтобы определить положение вашего первого и последнего пробела. После этого используйте MID-function чтобы разделить ваши данные на три части. Если вы знаете положение ваших пространств, расщепление легко. Нахождение первого пробела также тривиально, так как FIND слева направо. К сожалению, нет никакого способа сказать Excel, чтобы искать справа налево.

Так что сложная часть состоит в том, чтобы определить последний пробел! Здесь мы используем формулу массива.
Чтобы ввести формулу массива, вы вставляете формулу в ячейку и не нажимаете Enter.
Вместо этого вы нажимаете Ctrl+Shift+Enter.

{=MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))}

Если все сделано успешно, Excel добавит начальную и конечную фигурные скобки.


Вставьте все формулы в указанные ячейки и используйте autofill down

A2: ваши данные отправляются сюда
B2: =FIND(" ",A2,1)
C2: =MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A)) <формула массива!
D2: =MID(A2,1,B2-1)
E2: =MID(A2,B2+1,C2-B2-1)
F2: =MID(A2,C2+1,LEN(A2))

Экран результатов

0

Если подходящий алгоритм должен вернуть:

  • Код = первое слово
  • Продукт = все между первым и последним словом
  • Число = последнее слово

Тогда следующие формулы должны работать.

Предположим, ваши данные в A1:

Code:     =LEFT(TRIM(A1),FIND(" ",TRIM(A1))-1)
Product:  =TRIM(MID(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),100,LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)))-198))
Number:   =TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),99))

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