Member 12734412 Ответов: 3

Как удалить выделенный текст в столбце в excel? Заранее большое спасибо


c
-------------------------------------------------|
1  indraprasth hospital 153 Rates                |
-------------------------------------------------|
2  BLK Super Speciality Hospital 125 Rates       |
-------------------------------------------------|   
3  Saroj Super Speciality Hospital 86 Rates      | 
-------------------------------------------------|
.                                                | 
.                                                | 
.                                                |
.                                                | 



я хочу удалить "153 ставки","125 ставок", "86 ставок" ... из каждой ячейки столбца c. как это возможно в excel 2010 ? заранее спасибо....

Что я уже пробовал:

Я использовал функцию trim, но она не решает моей цели.

Patrice T

Покажите свой код.
и покажите результат, который вы хотите.

3 Ответов

Рейтинг:
1

Maciej Los

Вы можете использовать Regex.Match функция с рисунком: "\d{1,} Rates"чтобы проверить, содержит ли текст в ячейке искомый текст. Примечание, d это один или несколько экземпляров digit.

Видеть: Майкрософт биржевые VBScript с использованием регулярных выражений[^]

[РЕДАКТИРОВАТЬ]
Сценарий VBA:

Option Explicit

Sub test()
    Dim i As Integer
    Dim wsh As Worksheet
    Dim sPat As String
    
    'pattern
    sPat = ".\d{1,} Rates"
    'working sheet
    Set wsh = ThisWorkbook.Worksheets(1)
    'starting row
    i = 2
    'loop through the rows
    Do While wsh.Range("C" & i) <> ""
        'insert replacement in col. D 
        wsh.Range("D" & i) = RegexReplace(wsh.Range("C" & i), sPat, "")
        i = i + 1
    Loop
    Set wsh = Nothing

End Sub


'needs reference MS VBSrcipt Regular Expressions 5.5
Function RegexReplace(ByVal sInput As String, ByVal sPattern As String, ByVal sReplacement As String)
    Dim sRetVal As String
    Dim oRe As RegExp
    
    Set oRe = New RegExp
    With oRe
        .Global = True
        .Pattern = sPattern
        sRetVal = .Replace(sInput, sReplacement)
    End With
    Set oRe = Nothing

    RegexReplace = sRetVal
End Function


Patrice T

ОП, вероятно, также захочет удалить начальное пространство перед выражением.

Рейтинг:
1

Patrice T

В дополнение к решению 1:
Regex.Match скажет вам, есть ли выражение в строке.
Regex.replace сделаем замену.

Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
Это показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]


Рейтинг:
1

zamanipour

Привет, Вы можете найти шаблон в своем тексте и выбрать нужную вам часть.
например, если ваш шаблон: выделите текст до конца "больницы" , то сделайте это:

=LEFT(A1;FIND("hospital";LOWER(A1))+8)


или, может быть, ваш шаблон таков: выберите текст перед первым номером, а затем сделайте это:

=TRIM(LEFT(A1;MIN(IFERROR(FIND("1";A1);1000);IFERROR(FIND("2";A1);1000);IFERROR(FIND("3";A1);1000);IFERROR(FIND("4";A1);1000);IFERROR(FIND("5";A1);1000);IFERROR(FIND("6";A1);1000);IFERROR(FIND("7";A1);1000);IFERROR(FIND("8";A1);1000);IFERROR(FIND("9";A1);1000);IFERROR(FIND("0";A1);1000))-1))

(1000-это большое число, чтобы помочь функции MIN найти первое появление числовых символов, а также выбрать весь текст, если там не было цифр)

если бы вместо того, чтобы использовать VBA, если функции Excel потом другие ответы являются полными и большой.