2015-12-03 4 views
0

У меня есть строки в клетках, которые выглядят следующим образом (может быть сотнями)разделителей текста столбцов, используя формулу

713.00;482.00;337.00;530.00; 
71.00;32.54;37.00;5300.30; 
  • Есть 4 номера, каждый номер сопровождается запятой.
  • Длины этих чисел будет варьироваться в

Ideal Output

Я имею формулу для первой ячейки (Split 1), который является:

=LEFT(B2,(FIND(";",B2,1)-1)) 

Я просто не могу выяснить formualas для следующих 3-х ячеек (Split 2, 3 и 4)

ПРИМЕЧАНИЕ: Это должна быть формула NOT для функции text to columns.

Любые предложения были бы оценены, и если вам нужна дополнительная информация, пожалуйста, спросите! :)

+1

данных ► Data Tools ► Текст для столбцов – Jeeped

+0

Спасибо. Но, как говорит мой заголовок, мне нужна функция/формула. Я исправил свой пост, чтобы сделать его более понятным :) – JHair

ответ

3

В В1 входят:

=TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",999)),COLUMNS($A:A)*999-998,999)) 

и скопировать поперек и вниз:

enter image description here

Чтобы получить номера вместо текстовых подстрок, использование:

=--TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",999)),COLUMNS($A:A)*999-998,999)) 

и отформатировать результаты с двумя знаками после запятой.

Одним из недостатков является то, что число 999 является произвольным, поэтому эта формула будет терпеть неудачу, если длина исходной строки больше этого числа. Чтобы защититься от этого, мы можем использовать LEN($A1) вместо 999:

=--(TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",LEN($A1))),(COLUMNS($A:A)-1)*LEN($A1)+1,LEN($A1)))) 
+1

Умный! Одна слабость заключается в том, что число 999 является произвольным, поэтому эта формула будет терпеть неудачу, если длина исходной строки больше этого числа. Вместо 999 просто используйте 'LEN ($ A1)'! –

+0

@ Jean-FrançoisCorbett Отличная идея! –

+0

Также я уверен, что существует ограничение на длину строк, которые могут обрабатывать функции Excel ... Я считаю, что это 2^15-1. Поэтому замена разделителей большим количеством пробелов приведет к сбою в этом пределе, если в списке входных данных будет достаточно элементов. Если вы используете 999 пробелов, достаточно 32 элементов, чтобы они не сработали. Если вы используете 'LEN ($ A1)', это больше, но все же вполне конечно. –

Смежные вопросы