Необходимо разработать формулу для извлечения ‘DE12345’ из текстового поля произвольной формы

#excel #excel-formula

#excel #excel-формула

Вопрос:

У меня есть формула для извлечения DEF-678, но если после нее следует DE12345, она игнорируется. Мне нужно извлечь их оба в отдельные поля со своими уникальными формулами.

Вот формула, которая у меня есть: =IFERROR(MID(cell_number, FIND(«DE», cell_number), 8),»»)

Есть ли способ использовать символ подстановки или числовой оператор для извлечения DE ###? Должен ли я смириться с этим и изучить VBA? это упростит задачу?

Спасибо

Комментарии:

1. Как вы можете заметить, FIND имеет три аргумента. Итак, чтобы найти второй DE, используйте find("DE", cell, find("DE", cell) 1) .

Ответ №1:

Вы не предоставили много подробностей, поэтому я делаю некоторые предположения здесь:

  1. Ваша начальная строка всегда содержит DEF-### строку ПЕРЕД DE##### строкой
  2. Других строк, которые имеют DE
  3. Длина строки для обоих всегда равна 7 (не уверен, почему вы используете 8?)

Если приведенное выше верно, вы можете извлечь свою первую строку с помощью

 =MID(A1,FIND("DE",A1),7)
  

И ваша вторая строка с использованием

 =MID(A1,FIND("DE",SUBSTITUTE(A1,"DEF","~~~")),7)
  

Чтобы получить вторую строку, мы можем просто удалить DEF тег из текста, а затем использовать тот же подход, что и для получения первой строки 🙂

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