Как извлечь эти числа?

Как извлечь эти числа?

У меня есть список чисел в формате 000000xx или 00000yyy. Их несколько тысяч. Я хочу извлечь xx или yyy, но для этого потребуется извлечь количество символов. Есть ли лучший способ сделать это?

решение1

Если ваши данные имеют вид:

1234432566ABC
или
765257754322XY

Тогда последние три символа имеют вид:

АБВ
или
2XY

Мы можем определить, следует ли извлекать 2 или 3 символа, проверив, является ли первый символ из трех цифрой или нет:

=IF(ISERROR(--(LEFT(RIGHT(A1,3),1))),RIGHT(A1,3),RIGHT(A1,2))

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

ПРИМЕЧАНИЕ:

Главный трюк:

  1. выделение третьего символасправа
  2. возможность проверить, является ли этоцифра

решение2

=REPLACE(A1,1,SUM(--ISNUMBER(-LEFT(A1,ROW($A$1:INDEX($A:$A,LEN(A1)))))),"")
  • -ISNUMBER(…возвращает 1для каждого числового символа в строке.
  • SUM(…затем складывает их, чтобы вернуть количество цифр в начале строки.
  • Затем мы REPLACEдобавляем SUMначальные символы с нулевой строкой.

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

решение3

Это должно вытащитьххилигггс правого конца, при условии, что длина всего текста не превышает 99 символов.

=RIGHT(A2, LEN(A2)-AGGREGATE(14, 7, ROW($1:$99)/ISNUMBER(--MID(A2, ROW($1:$99), 1)), 1))
'alternate
=REPLACE(A2, 1, AGGREGATE(14, 7, ROW($1:$99)/ISNUMBER(--MID(A2, ROW($1:$99), 1)), 1), "")

Эффективность вычислений можно повысить, если изменить два99's к максимальному количеству цифр, которые необходимо удалить.

решение4

A1: 1234432566ABC

A2: 765257754322XY

B1, скопировано:

=RIGHT(A1,ISERR(-LEFT(RIGHT(A1,3)))+2)

затем,

B1возвращаться :ABC

B2возвращаться :XY

Связанный контент