Функция Excel Len на основе условия - PullRequest
0 голосов
/ 17 июня 2020

В моем файле Excel есть две колонки.

   Full ID       Expected Result
  159473A1         159473
  159696A1         159696
  160614A1         160614
  43293J1A          43293
  43293D1A          43293
  43293A2B          43293
  43293J2B          43293
  43293B2B          43293

То, что я пробовал:

=Left(A2,LEN(A2)-2)

159473
159696
160614
43293J
43293D
43293A
43293J
43293B
53202

Но, видите ли, я не могу этого сделать, потому что у меня все еще есть некоторые символы в ожидаемых результатах

43293J
43293D
43293A
43293J
43293B

Как получить ожидаемые результаты, как в верхнем примере?

Ответы [ 3 ]

1 голос
/ 17 июня 2020

В B2 попробуйте:

=LEFT(A2,MATCH(FALSE,INDEX(ISNUMBER(MID(A2,ROW(A$1:INDEX(A:A,LEN(A2))),1)*1),),0)-1)

Если у вас есть доступ к DA-функциям (O365), например, SEQUENCE:

=LEFT(A2,MATCH(FALSE,ISNUMBER(MID(A2,SEQUENCE(LEN(A2)),1)*1),0)-1)

enter image description here

Примечание: Если вы тоже имеете дело с целыми числами, возможно, чтобы предотвратить возможные ошибки с помощью MATCH, вы можете использовать =LEFT(A2,MATCH(FALSE,ISNUMBER(MID(A2&"A",SEQUENCE(LEN(A2)+1),1)*1),0)-1)

0 голосов
/ 17 июня 2020

Эта формула будет работать для вас, не забудьте нажать Ctrl + Shift + Enter после вставки формулы в качестве формулы на основе матрицы

укажите свой адрес электронной почты, я могу отправить вам свою тренировку = LEFT (A2, IFERROR (MATCH (1, ISERR (MID (A2, ROW (INDIRECT ("1:" & LEN (A2))), 1) * 1) * 1,),) - 1)

0 голосов
/ 17 июня 2020

Итак, в первом случае очень просто:

enter image description here

Но у вас проблема со строкой 4 ... так что это поможет, если:

IF(ISNUMBER(VALUE(LEFT(A3,LEN(A3)-2))),VALUE(LEFT(A3,LEN(A3)-2)),VALUE(LEFT(A3,LEN(A3)-3)))
...