2014-10-31 3 views
0

У меня действительно возникают проблемы с написанием формулы MID для извлечения даты выполнения (всегда одной длины) и количества строк (переменной длины). Может ли кто-нибудь помочь мне, пожалуйста? Я немного теряюсь в вложенных формулах.Извлечение определенных строк из данных с помощью MID в Excel

Проект в партии 100 из 120 для A2B_1414696641872. Срок исполнения: 2014-11-03. Количество слов: 1976. Количество строк: .

Строки в колонке А, столбец В должен содержать 2014-11-03 и столбец С должен содержать 345

Проект в Batch 10 12 для A2B_141469664. Срок исполнения: 2014-11-03. Количество слов: 19. Количество строк: .

Строка в колонке А, столбец В должно содержать 2014-11-03 и столбец С должно содержать 19

-

я в настоящее время имею следующий для извлечения из-за даты (он работает):

=MID(LEFT(B1,FIND(". Word count",B1)-1),FIND("Due date:",B1)+10,LEN(B1)) 
+0

Что вы имеете сейчас? – Jerry

+0

Привет, Джерри. Спасибо за ответ. См. Мое редактирование. – user3842077

ответ

0

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

=MID(B1,FIND("Due date:",B1)+10,10) 

Due Date: имеет длину 9, так что с тех пор мы FIND ING его, вам нужно добавить 10 к ней (более 1, чтобы получить первый символ даты) ,

Тогда дата всегда 10 символов: yyyy-mm-dd, поэтому вы можете использовать 10 для даты.

Для подсчета строк, это похоже, и я предлагаю использовать Row count:, чтобы получить его:

=MID(A1,FIND("Row count:",A1)+11,1000) 

И я просто использовал очень большое значение для длины, так как количество строк в конце, и принимая значение здесь больше, чем фактическая длина.


EDIT: Пропущенный период. Для этого, я хотел бы предложить удаление точек первого:

=MID(SUBSTITUTE(A1,".",""),FIND("Row count:",SUBSTITUTE(A1,".",""))+11,10) 
+0

Конечно! Я настолько обернулся, зная, что количество строк было переменным, что я объяснил это на заданный срок без необходимости. Мне нравится ваше решение для подсчета строк, но сможете ли вы отредактировать его, чтобы он обрезал ведущее пространство и конечный период? Большое спасибо за ваш быстрый ответ! | Изменить: я изменил 11 на 12, чтобы удалить пробел. Может ли функция Right использоваться для удаления периода? – user3842077

+0

@ user3842077 О, я пропустил период ... Отредактировал его. Что касается обрезки, я не уверен, как у вас есть пробелы, если в данных есть отдельные пробелы, но вы можете либо изменить числа, либо использовать external 'TRIM (...)' к формуле. – Jerry

+0

Следующее удаление дополнительной точки/периода: = ПРАВО (MID (A1, FIND («Asin count:», A1,1) + LEN («Asin count:»), LEN (A1) - (FIND («Asin count : ", A1,1) + LEN (" Количество строк: ")))) - 1 – user3842077

0

Ячейка A1 (чтобы содержать строку тестируемого):

Project in Batch 100 of 120 for A2B_1414696641872. Due date: 2014-11-03. Word count: 1976. Row count: 345. 

Ячейка B1:

=MID(A1, 
     FIND("Due date: ",A1,1) + LEN("Due date: "), 
     10 
    ) 

Ячейка C1:

=MID(A1,  
     FIND("Row count: ",A1,1) + LEN("Row count: "),  
     LEN(A1) - (FIND("Row count: ",A1,1) + LEN("Row count: ") - 1 ) 
    ) 

Сообщите мне, если это поможет.

0

Вот еще один способ.Для Впритык:

=MID(A1,SEARCH("????-??-??",A1,SEARCH("Due Date",A1)),10) 

или, там будет только одна дата в строке

= MID (A1, SEARCH ("???? - ????", A1), 10)

Для подсчета Роу, если она всегда будет в конце:

=SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",99)),99)),".","") 
Смежные вопросы