2014-11-02 6 views
0

У меня есть массивный список дат, которые находятся в нескольких разных форматах. То, что я хотел бы сделать, это избавиться от чего-либо, кроме первого символа пробела, будь то пространство, новая строка, вкладка и т. Д. Я нашел много ответов, подробно описывающих, как избавиться от пробелов, но не так много об удалении подстроки, основанные на местоположении пробелов. Пример ниже:Удаление всего после пробела в Excel

BEFORE     AFTER 
37893     37893 
37801     37801 
37710     37710 
37620     37620 
36980     36980 
06/30/2014\nUSD   06/30/2014 
03/31/2014\nUSD   03/31/2014 
12/31/2013\nUSD   12/31/2013 
09/30/2013\nUSD   09/30/2013 
06/30/2013\nUSD   06/30/2013 
03/31/2013\nUSD   03/31/2013 
12/31/2012\nUSD   12/31/2012 
etc... 

ответ

2

Для примера данных, это было бы достаточно:

LEFT(A1,10) 

Форматирование как даты, вы можете сделать это:

=TEXT(LEFT(A1,10),"mm/dd/yyyy") 
2

Это возможное решение формулы.

=IFERROR(--REPLACE(A1, IFERROR(FIND(CHAR(10), A1),LEN(A1)+1),LEN(A1), ""),REPLACE(A1, IFERROR(FIND(CHAR(10), A1),LEN(A1)+1),LEN(A1), ""))

Это может показаться слишком сложным, но он защищает от клеток, которые могут или не могут иметь канал линии, а также попытки преобразования чисел в числа и даты к датам, оставляя только текст. Вам нужно будет отформатировать ячейки для изменения возвращаемых значений, таких как до . 6/30/2014.

+1

Это хороший универсальный ответ, даже если это больше, чем необходимо ОП. Обратите внимание, что это не сработает, если есть место вместо новой строки, что и требовалось. Это сделает формулу еще более волосной. –

+1

Один трюк, который я использую, чтобы избежать ошибок FIND, заключается в добавлении строки поиска, например: '= FIND (" x ", A1 &" x ")'. Это эквивалент '= IFERROR (FIND (« x », A1), LEN (A1) +1)'. Однако это не сильно сократит ваш код, так как 'x' является' CHAR (10) '. –

+0

+1 @RickHitchcock - хорошая точка и предлагаемая качественная модификация – Jeeped

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