2010-08-26 4 views
4

У меня есть клетки, которые выглядят, как это, по одному в строке:Как удалить ВСЕ числа из ячейки с помощью функции или регулярного выражения?

Duffy, Джон: «Наследие: Цивилизация и Jews'- Fanfare & Хоральной, Симфонические танцы + Оркестровые Suite. Бернштейн, «На городском танце» Эпизоды. Royal Phil./R.Williams

Lilien, Ignace 1897-1963: Песни, 1920-1935 годы. Anja van Wijk, mezzo & Frans van Ruth, фортепиано

Hindemith, Trauermusik. Purcell, 'Fairy Queen' Suite. Россини, Струнная соната 6. Петров, балет «Создание мира» Сюита. Барток, румынский Folkdances Sz 56. Тартини, Концерт для флейты в G wAMaiorov Ленинград Orch.for Древний & Современная музыка/Серов

Бизе, Верди, Массне, Пуччини: Arias от Кармен, Риголетто, Вертера, Манон Lescaut, Tosca, Turandot + Песни Lara, Di Capua et al. Peter Dvorsky, tenor w.Bratislava Orch./Lenard Также выступает 'Carmen' Overt. & «Таис» Медитация. Rec.Live, 10/87

Fantini, Раух, C.Straus, Priuli, Bertali: 'Фестиваль мессу в императорском дворе Вена, 1648' Йоркширский хор Баха & барочные солисты + барокко латуни Лондон/Seymour

Винчи, Leonardo1690-1730: Арии из Семирамиды Riconosciuta, новой антиквы Abbandonata, Ли Caduta дей децемвиров, Lo Cecato Fauzo, Ли Фест де Бакко~d, Catone в Утике. Мария Анджелесе Питерс соп. wMCarraro проведение

Глюк, Моцарт, Бетховен, Вебер, Верди, Вагнера, Ponchielli, Масканьи, Пуччини: Арии из Альцеста, Дон Жуан , Fidelio, Оберон, Балло, Тристана, Walkure, Siegfried, готтердаммерунг, Джоконда , Cavalleria, Tosca. Helene Wildbrunn. Rec.1919-24

Я хотел бы удалить ВСЕ числа. как мне это сделать с помощью формулы? или просто искать и заменять регулярным выражением?

+0

Вы хотите удалить тире с номером? Каков диапазон для всех возможных шаблонов? –

ответ

8

Как сделать это с помощью VBA ...

  1. Открыть рабочую книгу Excel и вставить текст, при условии, таким образом: alt text

  2. Пусть эти строки, выбранные.

  3. Нажмите «ALT + F11», чтобы открыть редактор Visual Basic.

  4. Перейдите в меню «Вставка» и откройте модуль.

  5. Тип этой функции:

    Sub clear() 
    s = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9") 
    For Each r In Selection 
    v = r.Value 
    For i = 0 To 9 
    v = Replace(v, s(i), "") 
    Next 
    r.Value = v 
    Next 
    End Sub 
    

  6. Нажмите на зеленую кнопку воспроизведения, чтобы выполнить сценарий VBA. alt text

  7. Вернитесь к листу и увидеть результат (не более цифр): alt text

1

ОБНОВЛЕНО: Я случайно отправил содержит функцию вместо замены!

Поиск и замена в Regex отлично работает, но вы можете редактировать свои текстовые слова (например, запятые, которые были там до чисел и т. Д.).

Вот эта функция. Узор просто = REGEXREPLACE (клетка, «\ d», «»)

Function RegexReplace(ByVal text As String, _ 
         ByVal replace_what As String, _ 
         ByVal replace_with As String) As String 

Dim RE As Object 
Set RE = CreateObject("vbscript.regexp") 

RE.Pattern = replace_what 
RE.Global = True 
RegexReplace = RE.Replace(text, replace_with) 

End Function 
2

я столкнулся с подобной проблемой, но пошел другим путем, желая избежать использования VBA. Рекурсивный использование замены сделал трюк для меня, как показано ниже:

исходные данные (в A1:, п = целое число) РОЭ -1,00 P/E 0.07 -0.85 Roc-Roe 0.02 -0.03 и т.д ..

= ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (А1, "1", ""), "0", ""), "2", ""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), «9», «»)

, который может быть продлен, чтобы избавиться от «-» и десятичного индикатора «.». а также «+» (если это необходимо) и, наконец, лишние пробелы, используя

= облицовку (запасной (запасной (substitue (Подставим (Подставим (Подставим (Подставим (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (А1 , "1", ""), "0", ""), "2", ""), "3", ""), "4", ""), "5", ""),» 6 "," ")," 7 "," ")," 8 "," ")," 9 "," ")," - "," ")," + "," ")". , ""))

, где строчные буквы представляют собой осложнения, добавленные на текущем этапе.

Это естественно отображает весь массив, изменяя ссылку на весь массив, подлежащий анализу (A1: An), и вводя формулу в виде массива (т. Е. Используя Ctl + Enter вместо Enter для завершения задачи) ,

Затем я использую len (B1), чтобы проверить результаты, что я хочу.

Не элегантный, правда. Но может быть полезным упражнением для обучения студентов мыслить и кодировать «на лету».