Как сделать подстроку слова в Excel и добавить одну букву и преобразовать в верхний регистр - PullRequest
0 голосов
/ 07 марта 2019

Я работаю над таблицей Excel, где я пытаюсь использовать эту функцию (найти или извлечь или влево или вправо), чтобы получить конкретное значение и добавить _ в конце слова

Например

dlxlep1

Я хочу это заглавной буквой

DLXLE_1

Аналогично

hubudp1

Я хочу это как

HUBUD_1

Я пытаюсь использовать функцию поиска, но она не работает должным образом

Вот тот, который я попробовал

=left(A1,5)

Ответы [ 3 ]

2 голосов
/ 07 марта 2019

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

=UPPER(LEFT(A1,LEN(A1)-1)) &"_" &  RIGHT(A1,1)

enter image description here

Это предполагает одна десятичная цифра в конце строки.

РЕДАКТИРОВАТЬ # 1:

Чтобы удалить последний символ перед десятичной цифрой используйте:

=UPPER(LEFT(A1,LEN(A1)-2)) &"_" &  RIGHT(A1,1)
0 голосов
/ 07 марта 2019

ЗАМЕНИТЕ подвиг. SEARCHREV

В VBE

SEARCHREV - это пользовательская функция (UDF), которая будет выполнять те же действия, что и SEARCH (без учета регистра, т.е. AA=Aa=aa), за исключением конца строки.

Скопируйте код на стандартный модуль (в VBE перейдите на Insert>>Module).

'*******************************************************************************
' Purpose:    Returns the position of the last occurence of
'             a case-INsensitive string within a string. Read only. Long.
' Inputs:
'   UseString       Required. String expression being searched.
'   SearchString    Required. String expression being searched for.
'   RightPosition   Optional. Numeric expression that sets the starting position
'                   for each search. If omitted, –1 is used i.e. the search
'                   begins at the last character position.
'                   If start contains Null, an error occurs.
'*******************************************************************************
Function SEARCHREV(UseString As String, SearchString As String, _
    Optional RightPosition As Long = -1) As Long
  Application.Volatile
  SearchREV = InStrRev(UseString, SearchString, RightPosition, vbTextCompare)
End Function
'*******************************************************************************

В Excel

Ваш вопрос можно переформулировать так:

Заменить последнее вхождение буквы P на подчеркивание (_) и применять заглавные (заглавные) буквы к строке.

Положение последнего вхождения буквы P легко найти с помощью функции SEARCHREV: =SEARCHREV(A1,"P"). Это именно то, что нужно функции REPLACE в качестве второго параметра: =REPLACE(A1,SEARCHREV(A1,"P"),1,"_"). Теперь мы применяем прописные буквы: =UPPER(REPLACE(A1,SEARCHREV(A1,"P"),1,"_")). Если P не найден, SEARCHREV вернет 0, что приведет к ошибке REPLACE. Поэтому мы должны обработать его в операторе IF перед тем, как запустить остальные =IF(SEARCHREV(A1,"P")=0;"";...

Если данные начинаются с A1, вставьте следующую формулу в B1.

=IF(SEARCHREV(A1,"P")=0,"",UPPER(REPLACE(A1,SEARCHREV(A1,"P"),1,"_")))

enter image description here

0 голосов
/ 07 марта 2019

используйте UPPER(), чтобы преобразовать строку в верхний регистр.Если последний символ всегда представляет собой одну цифру, проанализируйте левую сторону с помощью LEFT(A1,LEN(A1)-1), используя LEN (длина), чтобы определить длину меньше единицы.Добавьте символ подчеркивания &"_"&, за которым следует самый правый символ RIGHT(A1,1).Вместе это должно выглядеть как =UPPER(LEFT(A1,LEN(A1)-1)&"_"&RIGHT(A1,1) Редактировать: если «p» всегда перед числом, то его следует оставить -2 =UPPER(LEFT(A1,LEN(A1)-2)&"_"&RIGHT(A1,1) или даже =UPPER(REPLACE(A1,LEN(A1)-1,1,"_"))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...