2

У меня есть эти две клетки:

35hz 24.5/jy;8243-9884;100093 and 
aslhz/45.77;94-224444;103944234

Я пытаюсь выделить число между точками с запятой. Я использовал функцию:

=RIGHT(A1, FIND(";",A1)-1)

но он удаляет не только то, что рядом с точкой с запятой. Что-то не так с формулой?

4 ответа4

3

С данными в A1, в B1 введите:

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

EDIT # 1:

Сделайте 2 в 1, чтобы получить все до первого ; ,
Сделайте 2 в 3, чтобы получить все после второго ; ,

2

Использовать Excel Flash Fill (2013 и более поздние версии). С текстом в непрерывном столбце введите первый желаемый результат, затем начните вводить второй желаемый результат и посмотрите, как Flash Fill предлагает результат.

Смотри, мама, никаких формул!

Редактировать:

Flash Fill также позволяет исправлять недостатки в обнаруженной логике. На снимке экрана ниже строки 6 и 7 первоначально берут последнее слово столбца C. После корректировки строки 6 ко второму последнему слову строка 7 автоматически подстраивается под это новое правило и показывает "есть" вместо "хорошо".

2

RIGHT(CELL,LEN) дает вам символы LEN справа, тогда как FIND возвращает первую точку с запятой.

Вам нужно что-то вроде этого:

А1 35hz 24.5/jy;8243-9884;100093
B1 =FIND(";",A1)
C1 =RIGHT(A1,LEN(A1)-B1)
D1 =FIND(";",C1)
E1 =LEFT(C1,D1-1)

Как только вы увидите, как это работает, вы можете объединить формулу в одну ячейку.

Вы должны увидеть значение 8243-9884 в E1.

1

Вы можете сделать это так, чтобы получить среднее число.

=MID(A1,(FIND(";",A1)+1),(FIND(";",A1,(FIND(";",A1)+1))-(FIND(";",A1)+1)))

MID дает вам строку, начинающуюся с заданного символа и указанной длины. Мы находим первое ";" с помощью FIND и использовать его для начала.

Теперь нам нужна длина, и для этого нам нужно найти второе ";" также, и мы делаем это снова FIND, но начиная с позиции после первого ";". Эта часть дает нам позицию 2 ";":

FIND(";",A1,(FIND(";",A1)+1))

Из этого мы вычитаем позицию 1-го ";" чтобы получить длину и объединить все в формуле выше. Обратите внимание, что если ваша ячейка не содержит хотя бы 2 точки с запятой, формула вернет ошибку.

Если вам нужен последний номер, вам нужно второе ";", чтобы вы могли использовать:

=RIGHT(A1,LEN(A1)-FIND(";",A1,(FIND(";",A1)+1)))

Получить первый номер проще всего:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .