Разбить сложную строку на отдельные ячейки

Разбить сложную строку на отдельные ячейки

Мне нужно разобрать строку с полями разной длины на отдельные столбцы. У меня есть следующий ряд данных.

введите описание изображения здесь

Используя формулы, я хотел бы заполнить столбцы F, G, H и I различными полями разделов в столбце D. Я создал текущий контент вручную, но хотел бы сделать это с помощью формул.

Большую часть данных я могу воспроизвести правильно, но у меня возникли проблемы со столбцом G, поскольку эти данные иногда содержат два символа (например, 01, 03), а иногда — пять символов (например, 01-16).

решение1

Это простой способ сделать это, предполагая, что формат остается чем-то [пробелом], чем-то [пробелом] и т. д. Хитрость в том, чтобы сосредоточиться на пробелах (разделителях), а не на данных (тексте).

  • столбец F =left($d6,find(" ",$d6)) здесь используется find для определения того, сколько нужно вытащить.

  • Столбец g =СРЗНАЧ($D6,1+ДЛСТР(F6),НАЙТИ(" ",$D6,1+ДЛСТР(F6))-ДЛСТР(F6))

Здесь используется середина, начинающаяся после столбца f, а затем ищущая второй пробел

  • Столбец h =СРЗНАЧ($D6,1+ДЛСТР(F6&G6),НАЙТИ(" ",$D6,1+ДЛСТР(F6&G6))-1-ДЛСТР(F6&G6))

Это следует той же схеме. Используйте середину и начните за пределами предыдущих 2 столбцов данных, найдите следующий пробел, и разница будет в том, сколько использовать.

Просто скопируйте это.

решение2

В Excel перейдите кТекст в столбцы введите описание изображения здесь

выбиратьРазграниченный:

введите описание изображения здесь

выбиратьКосмос:

введите описание изображения здесь

Нажмите «Далее» и всё будет готово.

решение3

Я бы использовал метод «Текст по столбцам», но поскольку вы просили формулу, вставьте ее в B2 и скопируйте сверху и снизу:

=TRIM(MID(SUBSTITUTE($A2," ",REPT(" ",999)),(COLUMN(A:A)-1)*999+1,999))

введите описание изображения здесь

Связанный контент