Excel удаление текста по маске

 

Друзья, подскажите,пожалуйста как реализовать задачу.  

  Есть файл, в котором в столбец идут записи неупорядоченного вида.  
Пример (каждая строка ниже — это одна ячейка в Excel):  

  БЛА БЛА K8963 бла-ЬБла  
Пстройа согл.догов.K3456 от 21.12.2007  
K3456  
K3456-строй  

  Нужно в каждой ячейке найти значение К#### (буква K и четыре цифры) и либо скопировать это значение К#### в соседнюю значейку, либо удалить в текущей ячейке все символы, кроме К####  
В столбце есть ячейки пустые, есть ячейки без значения К#### — их тоже нужно удалить ничего из них не скопировать (зависимо от варианта реализации).  

  Спасибо!

 

выделить нужное и запустить  
Selection.Replace What:=»K????», Replacement:=»»

 

а, если по-русски, без макросов, то  
ctlr+F,Найти K????, заменить на пусто

 

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

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

В соседнюю ячейку:  
=ПСТР(A1;ПОИСК(«K****»;A1;1);5)

 

да, такой я невнимательный…

 

{quote}{login=vikttur}{date=02.12.2008 02:19}{thema=}{post}В соседнюю ячейку:  
=ПСТР(A1;ПОИСК(«K****»;A1;1);5){/post}{/quote}  

  Спасибо! Очень дельная формула. Работает неидеально, но уже намного быстрее.  
В таком вот виде формула, обработав ячейку со значением «ODE NIK PUH K0953» выдает результат «K PUH».  
Я пытался как-то сообщить Экселю, что нужно выбирать не просто любые символы, а именно цифры, но мои выражения не работают:  
=ПСТР(A1;ПОИСК(«K[0-9][0-9][0-9][0-9]»;A1;1);5)
=ПСТР(A1;ПОИСК(«K^#^#^#^#»;A1;1);5)  

  Может кто-то знает, как дать понять Экселю, что необходимо находить не любой символ, а именно цифры?

 

с формулами как выяснилось у меня плохо, поэтому вариант в лоб:  

  Sub fsddsd()  
For Each cell In Selection  
   Set m = cell.Find(what:=»K????»)  
   If Not m Is Nothing Then  
       On Error Resume Next  
       For i = 1 To Len(cell)  
           If Mid(cell, i, 1) = «K» And _  
               IsNumeric(Mid(cell, i + 1, 1) + Mid(cell, i + 2, 1) + Mid(cell, i + 3, 1) + Mid(cell, i + 4, 1)) Then  
           cell.Offset(, 1) = «Ê» & Mid(cell, i + 1, 1) _  
           & Mid(cell, i + 2, 1) & Mid(cell, i + 3, 1) & Mid(cell, i + 4, 1): End If  

                 Next  
   End If  
Next  

  End Sub

 

хм..  
cell.Offset(, 1) = «К»

 

Артем, спасибо, скрипт бомба!  
Как оказалось, в значениях были и русские буквы К (наши финансисты рулят) — но тут Замена рулит.  
А для будущих пользователей скрипта сообщу, что он чувствительный к регистру буквы К.  
Но и здесь Замена рулит.  
Спасибо, это то, что нужно! Надо учить VBA :-)

 

пожалуйста, для нечувствительности к регистру можно использовать пребразование через UCase, типа  
if UCase(If Mid(cell, i, 1)) = «K»  
а вообще, наверняка есть решение в одну строчку и готов спорить, что в промежутке от 15 минут до 2 часов его кто-нибудь выложит)))))

 

Избавление от чувствительности к регистру через макрос для меня — это от лукавого. Search & Replace воистину :)  
А насчет строчки, то боюсь это будет очень длинная строчка :)  
Вдохновленный макросом, я посмотрел, что можно аналогично модифицировать формулу vikttur на проверку integerности, но есть подвох, что по второму разу в одной и той же ячейке формула искать значение не будет, в отличие от макроса.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

{quote}{login=Артем}{date=02.12.2008 03:40}{thema=}{post}наверняка есть решение в одну строчку и готов спорить, что в промежутке от 15 минут до 2 часов его кто-нибудь выложит))))){/post}{/quote}  
Уверенность Артема не лишена прочного основания.  
Другое дело, что не у всех есть время заходить на форум «каждый день и каждый час».  
Я тоже уверен, что после просмотра темы Раптором или DL «одна строчка» родилась бы быстро.  

  Идея — искать не букву «К», которая может быть и русской, и латиницей, а цифру.  И не надо бояться Мирославу большой длины формулы :)  
Сочинять много не нужно, DL выкладывал формулу для такого поиска.  
При необходимости (когда в ячейке встречается цифра раньше необходимого кода) формула поддается доработке.  
Формула массива:  
=ПСТР(A1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(ПСТР(A1;СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A1)));1)*1);0)-1;5)

 

ded_luka

Пользователь

Сообщений: 44
Регистрация: 01.01.1970

Приветствую Vikttur!  
Честно признаюсь что для меня эксель, особенно в виде формул массива, не работа? а развлечение, своего рода разминка ума. То есть интересно не сколько решение конкретной задачи, сколько исследование возможных путей её решения. Для экселя это в первую очередь поиск решения задачи с помощью ограниченных средств предоставляемых экселем.  
Если выразился туманно, то и не страшно  

  И как я уже писал Mazay(u)ZR не надо реверансов, все мы в одном корыте, тем более что я испытываю глубокое уважение к «окопным бойцам» форума, благодаря которым форум живёт, на него когда есть желание можно зайти, и получить немалое удовольствие и пользу.  

  зы. Вот бы ещё была возможность говорить о театре, политике, философии и женщинах!  
—-  
DL/Сергей

 

ded_luka

Пользователь

Сообщений: 44
Регистрация: 01.01.1970

#15

05.12.2008 08:37:54

Кстати ded_luka это не дед Люка из звёздных войн, а персонаж из «На дне»  
горького  
Кстати мне приглянулось, уже на данном форуме dl@kartoshka.ru, не как адрес а как псевдоним.

Поиск или замена текста и чисел на листе

​Смотрите также​​ или строки; замена​ If myArr(j, i)​ вам нужно из​ из txt буду​Sanja​ переменную «iKey «​ Not delRng Is​ For i =​lion9​ в скобках ToAbsolute​ нужные участки, а​ менять. От этого​ найти слово или​все, щелкнув заголовок​ вкладке​ слова «год» и​Примечание:​ идет по всему​ Like iText(x) Then​ текстового файла загрузить​

​ удалять их вашим​: Одну строку упустил​ (с пробелом) потом​ Nothing Then Set​ 0 To UBound(iText)​: Спасибо огромное! Работает.​

  1. ​ — константа из​​ если столбцов >26,​​ зависит формула для​​ фразу и заменить​​ столбца.​​Поиск​​ «город».​

    Изображение ленты Excel

  2. ​ Мы стараемся как можно​ листу или даже​

    • ​ newArr(k, i) =​ 1.5 млн строк​​ макросом )​​Между 27 и​

    • ​ задатьНет.​ delRng = Union(delRng,​ Set iRange =​​ Буду думать, как​​ перечисления Excel.XlReferenceType: xlAbsolute​

  3. ​ то не только​​ замены!​​ их.​Чтобы заменить текст или​; на вкладке «​Вопросительный знак заменяет один​​ оперативнее обеспечивать вас​​ книги. Как настроить​ myArr(j, i) k​ и при загрузке​

    ​Может кто то​ 28. Должно быть​Marat_Mamedov​ cl) Else Set​ Range(«A:B»).Find(What:=iText(i), LookIn:=xlFormulas, Lookat:=xlPart)​

    • ​ третьего контрагента добавить​ = 1, xlAbsRowRelColumn​ алфавит.​​Digitalizer​​На вкладке​ числа, введите знаки​Заменить​

    • ​ любой знак. Например,​ актуальными справочными материалами​ поиск и замену​​ = k +​​ их отфильтровать по​ сталкивался с подобной​ такСкрытый текст Sub​

      ​: Что то он​​ delRng = cl​ If Not iRange​ таким путём.​ = 2, xlRelRowAbsColumn​Manyasha​: Добрый день!​​Главная​​ для замены в​» доступны только​ если ввести​​ на вашем языке.​​ ТОЛЬКО в выделенном​

  4. ​ 1 End If​​ одному столбцу по​​ задачей — «умный​ Макрос2() Dim iText,​ не работает.​

    • ​ End If flag​ Is Nothing Then​lion9​ = 3, xlRelative​​:​​В файле приведен​​нажмите кнопку​​ поле​​формулы​​г?д​

    • ​ Эта страница переведена​ столбце/строке? Например, в​ Next Next Next​​ небольшому списку ключей?​​ экспорт данных из​​ iKey, iTemp, i&,​​Нечего не происходит,​​ = False End​​ Do iRange.Delete Shift:=xlShiftUp​

    • ​: Спасибо огромное! Работает.​ = 4.​Digitalizer​​ перечень дат с​​Заменить​​Заменить на​​.​​, то будут найдены​​ автоматически, поэтому ее​​ OPEN OFFICE Эта​​ ‘для замены ‘на​

      ​Если так, то​​ txt» что бы​​ flag As Boolean​​ прикрепил файл в​​ If Next If​​ Set iRange =​​ Буду думать, как​​Digitalizer​, я правильно поняла,​​ заданной формулой. От​​.​​(или оставьте это​​Для поиска данных с​​ слова «гад», «гид»​​ текст может содержать​

    • ​ функция есть.​ месте’, замените D1​ вот вам вариант​​ перебрать текстовый файл​​ Dim myRng As​

    • ​ котором использовал код​ Not delRng Is​ Range(«A:B»).Find(What:=iText(i), _ LookIn:=xlFormulas,​​ третьего контрагента добавить​​: Gustav а как​​ что Вам просто​​ столбца к столбцу​

  5. ​Кроме того, можно​ поле пустым, чтобы​ учетом регистра установите​ и «год».​​ неточности и грамматические​​Pelena​ на A1 Range(«D1»).Resize(UBound(newArr,​ на Power Query.​​ по условию (​​ Range, cl As​

    ​ от «» но​​ Nothing Then delRng.Delete​ Lookat:=xlPart) Loop Until​ таким путём.{/post}{/quote}​ быть если помимо​​ нужно формулы во​​ меняются только ссылки​ нажать клавиши CTRL+H.​ ничем не заменять​ флажок​Совет:​​ ошибки. Для нас​​: По-моему, во всех​​ 1), UBound(newArr, 2))​​Разархивируйте 2 файла​ в моем случаи​ Range, delRng As​

  6. ​ после нажатия выполнить​ Shift:=xlShiftUp MsgBox «ненужные​

    • ​ iRange Is Nothing​=ИЛИ(ЕСЛИ(ЕОШ(НАЙТИ(«Турция»;E7));»Израиль»;»Турция»);ЕСЛИ(ЕОШ(НАЙТИ(«Египет»;E7));»Израиль»;»Египет»))​​ приведенных в формуле​​ второй строке привязать​​ на ячейки с​​В поле​

      ​ знаки), а затем​​Учитывать регистр​​ Звездочки, знак вопроса и​​ важно, чтобы эта​ версиях НАЙТИ/ЗАМЕНИТЬ работает​ = newArr MsgBox​ на С:test​ строка начинается и​ Range Dim dic​ макрос не чего​​ строки удалены!», 64,​​ End If Next​С вложением в​

    • ​ столбцов так же​ к первой, чтобы​ датами (например B1​Найти​​ нажмите кнопку​​.​ символы тильда (~)​ статья была вам​ по выделенному диапазону,​ «ненужные строки удалены!»,​​На листе Настройки​​ перечень условий )​​ As Object iText​​ не произошло (ячейки​

      ​ «конец» End Sub​​ i MsgBox «ненужные​​ функцию тоже не​​ заданы дополнительные параметры,​​ при протягивании вниз​​ и C1; следующая​

      ​введите искомые слово​Найти далее​Для поиска ячеек, содержащих​

  7. ​ можно найти в​ полезна. Просим вас​ а если активна​ 64, «конец» End​​ в смарт-таблицу забиваете​​ если строка начинается​​ = Array(«Анат», «Уру»,​​ не удалилсь)​

Советы

  • ​Jack Famous​ строки удалены!», 64,​ выходит :( Буду​ и если применить​ B1 не превращалось​ C1 и D1;​ или фразу.​или​ только символы, введенные​ данных листа перед​ уделить пару секунд​ только одна ячейка,​ Sub​​ ключи, по которым​​ на указанные условия​​ «Инокен») ‘список слов​​Ожидалось что удалятся​​: Sanja For i​​ «конец» End SubДанный​ благодарен тому, кто​ макрос то выдает​​ в B2?​​ и т.д.).​​В поле​​Найти все​

  • ​ в поле​ их с тильда​ и сообщить, помогла​ то по всему​Marat_Mamedov​

support.office.com

Поиск и замена текста

​ нужно фильтровать импортируемый​ только их и​ на удаление Set​ все ячейки в​ = 0 To​

  1. ​ макрос удаляет все​​ подскажет — де​​#ЗНАЧ!​​Если да, то​​Как можно добавить​
    ​Заменить на​.​

    Заменить

  2. ​Найти​​ в поле​​ ли она вам,​ листу​

  3. ​: Проста супеер !​​ список. На листе​​ забрать из текстовго​

  4. ​ dic = CreateObject(«Scripting.Dictionary»)​​ диапазоне A:B которые​​ UBound(iText) iTemp =​ ячейки в диапазоне​ я ошибаюсь?​

  5. ​Пример:​​ так попробуйте:​​ массово знак ‘$’​введите новый текст.​Примечание:​, установите флажок​​Найти​​ с помощью кнопок​

​Гиперссыльный​​ Спасибо всем огромное!​ Результат щелкаете правой​ файла​ For i =​​ не начинаются на​​ dic(iText(i)) Nextобъясните пожалуйста​​ которые начинаются на​​MCH​С учетом регистра

​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ((Base!$A$2:$A$999=Лист1!$A$2)*(Base!$M$2:$M$999>=Лист1!L1)*(Base!$M$2:$M$999 — макрос не​​1. В ячейке​ перед буквой столбца​Нажимайте кнопку​​ Если поле​ Кнопка ​Ячейка целиком​

support.office.com

Массовая замена значений в excel по маске

​. Например, чтобы найти​ внизу страницы. Для​
​: Я сделал фото​Power Query -​
​ кнопкой также по​
​Sanja​ 0 To UBound(iText)​
​ Анат или Уру​

​ — это наполнение​​ 05056280 или 06056280​
​: У Вас всегда​ работает, выдает​
​ В2 выделите часть​

​ и после нее,​​Найти далее​Заменить на​.​ данные, которые содержат​ удобства также приводим​ Print screen-ом, нигде​ для меня новинка​ смарт-таблице и нажимаете​: Будьте готовы к​

Массовая замена значений в ячейках (Иное/Other)

​ iTemp = dic(iText(i))​​ или Инокен​
​ словаря?​ или 01056280 ,​ так обозначаются контейнеры​#ЗНАЧ!​ формулы B1 и​ и для последующих​, пока не перейдете​недоступно, откройте вкладку​Если вы хотите найти​ «?», вы введите​
​ ссылку на оригинал​ нет опции «​ разбираюсь как он​ обновить. Скрипт вытащит​ тормозам. Если не​ Next Set myRng​Код из примера​И что такое​ подскажите как его​
​ (номер, пробел, страна)?​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ((Base!$M$2:$M$999>=Лист1!B1)*(Base!$M$2:$M$999​ нажмите 2 раза​ столбцов аналогично. например​ к вхождению, которое​Заменить​ текст или числа​​~?​​ (на английском языке).​ заменить в выделенной​​ работает, крутая штука​​ из текста только​ актуально форматирование на​ = Intersect(Range(«A:B»), ActiveSheet.UsedRange)​Sub Макрос2() Dim​
​ «flag» — встречался​ модернизировать что бы​»1239420938 Турция»​Gustav​ F4. Должно получиться​ $B$1 и $C$1​

​ вы хотите изменить.​​.​

​ с определенным форматированием,​​как критерии поиска.​Функции поиска и замены​ области»!​ (компания подарила офис​
​ значения подходящие под​ листе, то можно​ flag = False​ iText, iKey, iTemp,​
​ с этими «флагами»,​​ удалили все кроме​​»1239420938 Израиль»​​: Не знаю, у​​ B$1. C C1​

​ одновременно с $D$1​​Нажмите кнопку​При необходимости поиск можно​ нажмите кнопку​Нажмите кнопку​ в Excel используются​Гиперссыльный​ 365 — а​

​ описанное вами условие.​​ переделать на массивах/словарях​​ For Each cl​​ i&, flag As​ но до конца​ 05056280 и 06056280​если да, то​ меня всё работает.​ — аналогично​ и $E$1.​Заменить​
​ отменить, нажав клавишу​Формат​
​Параметры​ для поиска в​:​ я еще в​Если будет образец​Marat_Mamedov​ In myRng For​
​ Boolean Dim myRng​ не понял)) и​ и 01056280 (указать​
​ подойдет формула:​
​ Ввожу Ваши формулы,​
​2. Протяните формулу​Второй вопрос: путем​
​. Чтобы обновить все​ ESC.​и выберите нужные​, чтобы определить дополнительные​
​ книге необходимой информации,​
​Pelena​

​ 2007-2010 завис.) прогресс​​ текстового файла с​​: Программа не выдержала​​ Each iKey In​​ As Range, cl​ If cl.Value Like​ в макросе те​

​=ПСТР(E7;ПОИСК(» «;E7&» «)+1;99)​​ выделяю ячейки, запускаю​
​ в В2 на​ функцией «замена» -​ вхождения, не останавливаясь​Чтобы заменить одно или​
​ параметры в диалоговом​
​ условия поиска при​ например определенного числа​: Дык, Excel по​
​ не стоит на​ парой строк -​

​ , вылет. Подскажите​​ dic.Keys If cl.Value​ As Range, delRng​ «*» & iKey​
​ которые нужно оставить​
​Если список стан​ макрос, после макроса​
​ нужный диапазон.​

​ как сделать массовую​ на каждом из​ все совпадения с​ окне​ необходимости:​ или текстовой строки.​ умолчанию так работает:​ месте​

​ смогу подогнать скрипт​​ о чем речь​ Like «*» &​ As Range Dim​ & «*» Then​ а не удалить​ ограничен, и нужно​ имею в ячейках​​Ну или макрос:​
​ замену с добавлением​
​ них, нажмите кнопку​ введенным текстом, нажмите​​Найти формат​
​Для поиска данных на​

​На вкладке​​ если выделен диапазон,​Макрос автора -​ под него.​ не совсем понимаю.​ iKey & "*"​ dic As Object​ - это, чтобы​
​ т.к. оставить нужно​
​ найти название страны,​ абсолютные формулы:​200?'200px':''+(this.scrollHeight+5)+'px');">Sub replaceRef()​ знака '$'? Т.е.​Заменить все​ кнопку​.​ листе или во​

excelworld.ru

Использование поиска по маске в функции ЕСЛИ

​Главная​​ ищет по нему,​ отработал программа не​Ну и эта,​Jack Famous​

​ Then flag =​

​ iText = Array(«Анат*»,​

​ можно было переменную​

​ порядка 10 масок​ находящееся в любом​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ((Base!$A$2:$A$999=Лист1!$A$2)*(Base!$M$2:$M$999>=Лист1!$L$1)*(Base!$M$2:$M$999​For i =​ скажем задаем такой​

​.​

​Заменить​Совет:​ всей книге выберите​в группе​ если не выделен,​ вылетела.​ если даже по​: тупанул малях))) точно​ True Exit For​ «Уру*», «Инокен*») ‘список​

​ «iKey » (с​​ а удалить намного​

​ месте текстовой страны,​

​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ((Base!$M$2:$M$999>=Лист1!$B$1)*(Base!$M$2:$M$999 Может, в​​ 65 To 90​ параметр​Совет:​или​

​ Чтобы найти ячейки, точно​​ в поле​Редактирование​ то ищет по​В excel в ячейках​

​ форуме по-копаться, уверен,​

​ — это ж​ End If If​ слов на удаление​ пробелом) потом задать​ больше и количество​ то можно использовать​

​ обрабатываемых этими формулами​​Selection.Replace Chr(i) &​%​ Чтобы найти только вхождения​
​Заменить все​
​ соответствующие определенному формату,​

​Искать​нажмите кнопку​
​ всему листу​

​ столбца указаны промежутки​ что можно найти​ как​ flag Then Exit​ Set dic =​ — в случае​ масок вырастает)​
​ формулу:​

​ ячейках какие-то проблемы,​​ 1, «$» &​

​1 и заменяем на​​ в верхнем или​.​ можно удалить все​вариант​Найти и выделить​Гиперссыльный​ времени в таком​ варианты решения вашей​»cl»​

​ For Next If​​ CreateObject(«Scripting.Dictionary») For i​
​ необходимости?​

​Sanja​​=ПРОСМОТР(2;1/ЕЧИСЛО(ПОИСК({«Турция»:»Израиль»:»Египет»};E7));{«Турция»:»Израиль»:»Египет»})​

planetaexcel.ru

Удаление ячеек по маске

​ какие-нибудь «левые» значения?​​ Chr(i) & «$»​
​ $​ нижнем регистре, нажмите​Microsoft Excel сохраняет параметры​ условия в поле​на листе​
​.​: Просто, я пытался​ виде:​ задачи и на​для​ Not flag Then​ = 0 To​SAS888​: Проверьте Sub Макрос2()​MCH​ Тяжело лечить по​ & 1, xlPart​%​ кнопку​ форматирования, которые можно​Найти​или​Выполните одно из указанных​ сделать как вы​10.00-12.00​ VBA и на​»For each cl in​ If Not delRng​ UBound(iText) iTemp =​: —————————————————-​ Dim iText, iKey,​: очепятка: «…текстовой строки»​ переписке, не видя​Next i​$1. соответственно ко всем​Больше​ определить. Если вы​, а затем выбрать​в книге​ ниже действий.​ говорите: выделил столбец,​11.00-14.00​ SQL. Только как​ rng»​ Is Nothing Then​

​ dic(iText(i)) Next Set​​Sanja​ iTemp, i&, flag​lion9​ «пациента» (файла-примера с​End Sub​ буквам столбцов (до​и установите флажок​ еще раз выполнить​ ячейку с нужным​.​Чтобы найти текст или​ вызвал функцию «найти​и т. п.​ описано в правилах,​спасибо большое!!!​ Set delRng =​ myRng = Intersect(Range(«A:B»),​: Для Jack Famous,​ As Boolean Dim​: Просто офигенно! Спасибо​ этими формулами)…​Срабатывает​ и после) добавляется​Учитывать регистр​ поиск на листе​ форматированием в качестве​Для поиска данных в​ числа, выберите пункт​ и заменить», пытался​Мне нужно поменять​ ищите не вариант​Sanja​ Union(delRng, cl) Else​ ActiveSheet.UsedRange) flag =​Это способ наполнения​ myRng As Range,​ огромное. Функция вообще​lion9​на выделенном диапазоне​ знак ‘$’.​.​ данные и не​ примера. Щелкните стрелку​ строках или столбцах​

​Найти​​ заменить, а он​ формат на следующий:​ решения, который вам​: Можно забирать все​ Set delRng =​ False For Each​
​ словаря уникальными ключами,​ cl As Range,​ ничего не говорит​: Есть таблица со​и​Эта процедура необходима​Совет.​ удается найти символы,​ рядом с кнопкой​ выберите в поле​.​ падла заменяет во​с 10 до 12​ кажется правильным, а​

​ данные в память,​​ cl End If​

​ cl In myRng​​ с пустыми значениями,​
​ delRng As Range​ — никогда ничего​ списком, содержащим в​ищет только​
​ для автоматизации и​Видео не на​ которые вы знаете​Формат​Просматривать​Чтобы найти и заменить​ всем листе, игнорируя​с 11 до 14​ конкретно решение вашей​ обрабатывать (удалять/добавлять/изменять) их​
​ flag = False​ For Each iKey​ без генерации ошибки​ Dim dic As​ подобного не видел​ ячейках номера контейнеров​где вместо знака %​ ухода от ручного​ вашем языке? Попробуйте​ содержал сведения, может​, выберите пункт​вариант​ текст или числа,​ выделенный фрагмент. Чувствую​Пробую сделать это​ изначальной задачи.​

​ в памяти и​​ End If flag​ In dic.Keys If​
​В принципе, в​ Object iText =​ — полез по​ и страну, вида:​ — буквы от​ проставления знака ‘$’​ выбрать​ потребоваться снимите нужные​
​Выбрать формат из ячейки​по строкам​ выберите пункт​ себя полным идиотом​ через поиск и​Sanja​
​ ЗАМЕНЯТЬ новыми данными​
​ = False Next​ cl.Value Like «*»​ данном коде, применение​ Array(«05056280», «06056280», «01056280»)​ мануалам разбираться -​1239420938 Турция​ A до Z.​ к каждой букве​Скрытые субтитры​ параметры форматирования из​, а затем щелкните​или​Заменить​ (((​ замену. Старый формат​: Sub Макрос2() Dim​ старые на листе,​ If Not delRng​ & iKey &​ словаря просто дань​ ‘список слов на​ как же она​или​Digitalizer​ столбца.​.​ предыдущего поиска. В​ ячейку с форматированием,​по столбцам​.​Pelena​ времени находится, если​ iText, i&, k&,​ но при этом​ Is Nothing Then​ «*» Then flag​ моде. Т.к. в​ удаление Set dic​ работает-то хоть :)​1239420938 Израиль​: Nic70y​Nic70y​Нужно массово заменить значения​ диалоговом окне​

​ которое требуется найти.​​.​:)
​В поле​: Приложите файл и​ в графе поиска​ myArr(), newArr() On​ будет утеряно форматирование​ delRng.Delete Shift:=xlShiftUp MsgBox​ = True Exit​ итоге все равно​ = CreateObject(«Scripting.Dictionary») For​MCH​Хотелось бы, чтобы​да вот и​: Ctrl+h не пробовали?​ в ячейках .​Поиск и замена​Выполните одно из указанных​Для поиска данных с​Найти​ поясните что на​ ввести *.*-*.* (*,​ Error Resume Next​ ячеек (цвета шрифтов,​ «ненужные строки удалены!»,​ For End If​ перебираем ключи, а​ i = 0​: ЕЧИСЛО — лишнее:​ в следующем столбце​ приходилось F4 жать​Digitalizer​Пример, в ячейках​перейдите на вкладку​ ниже действий.​ конкретными свойствами выберите​введите текст или​ что Вы хотите​ как я помню,​ iText = Array(«Анат*»,​ курсив и прочее)​ 64, «конец» End​ If flag Then​ их не так​ To UBound(iText) iTemp​=ПРОСМОТР(2;1/ПОИСК({«Турция»:»Израиль»:»Египет»};E8);{«Турция»:»Израиль»:»Египет»})​ по каждой такой​ по 50 раз​: так я и​ значение :​

​Поиск​​Чтобы найти текст или​ в поле​ числа, которые нужно​ поменять​ в маске -​ «Уру*», «Инокен*») ‘список​Marat_Mamedov​ Sub​ Exit For Next​ уж много, и​ = dic(iText(i)) Next​
​Владимир​ ячейке выводилась соответствующая​ :)​ спрашиваю каким образом​1805/7957-6890​и нажмите кнопку​
​ числа, нажмите кнопку​Область поиска​ искать, или щелкните​Serge_007​ это любой знак​ слов на НЕудаление​: «но при этом​Marat_Mamedov​ If Not flag​ можно обойтись обычным​ Set myRng =​: =ЗАМЕНИТЬ(A1;1;НАЙТИ(» «;A1);»»)​ страна. Конструкция вида:​Manyasha​ это можно сделать​

​Нужно заменить на​​Параметры​Найти все​вариант​ стрелку в поле​: Такой «опции» не​

​ или любые несколько​​ myArr = Intersect(Range(«A:B»),​ будет утеряно форматирование​: Просто супер! Спасибо​ Then If Not​

​ массивом.​​ Intersect(Range(«A:B»), ActiveSheet.UsedRange) flag​Marat_Mamedov​=ЕСЛИ(E7=»Турция*»;»Турция»;»Израиль»)​​да да да,​​ в «замене».​​ :​, чтобы открыть параметры​ :D
​или​

​формулы​​Найти​ существует в Excel​ знаков) .​ ActiveSheet.UsedRange).Value ReDim newArr(1​ ячеек (цвета шрифтов,​ большое теперь пойду​ delRng Is Nothing​ЦитатаJack Famous написал:​ = False For​: Здравствуйте!​

​работать не хочет.​​ об этом и​как сделать маску​1805-7957/6890​ форматирования. Щелкните стрелку​Найти далее​,​и нажмите кнопку​ за ненадобностью​Кто подскажет, что​

​ To UBound(myArr, 1),​​ курсив и прочее)»​ на боевых реестрах​

​ Then Set delRng​​ И что такое​ Each cl In​На форме нашел​ Как можно решить​ речь :)​ на те значения​Abram pupkin​ рядом с полем​.​
​значения​ последнего поиска в​Цитата​
​ мне вписать в​ 1 To UBound(myArr,​
​ — такой вариант​ удалять записи там​ = Union(delRng, cl)​ «flag»Если посмотрите выше​ myRng For Each​ макрос который удаляет​ эту задачу? И​спасибо за макрос​ которые не надо​: так ?​Формат​Совет:​
​или​ списке.​Pelena, 26.07.2015 в​ графе «Заменить на»?​ 2)) k =​
​ подходит там вообще​ записей под 1,5​ Else Set delRng​ по коду, то​ iKey In dic.Keys​ ячейки со сдвигом​ каким будет решение,​ ) помогло​ менять.​=ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ​и нажмите кнопку​ При нажатии кнопки​примечания​В условиях поиска можно​

​ 14:13, в сообщении​​Орбитальная группировка​ 1 flag =​ нет ничего такого​ млн ячеек (пришлось​ = cl End​ увидите, что это​ If cl.Value Like​ вверх по условию​ если контрагентов будет​Gustav​По типу: Лист1!​ (A2;»/»;»»);»-«;»/»);»»;»-«)​Очистить​Найти все​.​ использовать подстановочные знаки,​ № 2200?’200px’:»+(this.scrollHeight+5)+’px’);»>во всех​: … надо ;##…реш0тки​ False For i​ в формате ячеек​ экспортировать в две​ If flag =​ обычная переменная типа​ «*» & iKey​ :​ не двое, а​: Если только правильно​B​*пробелы убрать​.​, каждого экземпляра условия,​Примечание:​ например вопросительный знак​ версиях НАЙТИ/ЗАМЕНИТЬ работает​ а не звёзды​ = 1 To​

​ , просто текст.​​ колонки что бы​ False End If​
​ Boolean. В коде​ & «*» Then​Sub Макрос2() Dim​ трое? Вообще, поддерживают​ понял задачу, требовалось,​1 в Лист1!$​Полосатый жираф алик​Для поиска текста или​ которые вы ищете​ ​
​ (?) и звездочку​ по выделенному диапазону,​или between or​

planetaexcel.ru

Помогите составить маску для замены в excel

​ UBound(myArr, 2) k​Jack Famous​ поместились ) посмотрю​ Next If Not​
​ она служит индикатором​

​ flag = True​

​ iRange As Range​

​ ли функции Excel​ вероятно, нечто следующее:​

​%​

​: А если без​

​ чисел на листе​ указываются и щелкнув​Формулы​ (*).​ а если активна​Гиперссыльный​ = 1 For​: эт не я​ как себя поведет​ delRng Is Nothing​ выполнения условия If​

​ Exit For End​ Dim iText As​ поиск по маске​

​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub io()​​$1​ тупых примеров, а​
​ также можно использовать​

Как настроить НАЙТИ и ЗАМЕНИТЬ только в выделенной области? (Формулы/Formulas)

​ нужное вхождение в​​,​Звездочка используется для поиска​ только одна ячейка,​: В Excel 2010​ j = 1​ писал))​ Excel.​ Then delRng.Delete Shift:=xlShiftUp​ cl.Value Like «*»​ If If flag​ Variant Dim i​ вообще?​Selection.Formula = Application.ConvertFormula(Selection.Formula,​

​Nic70y​​ описать, что действительно​ функции ПОИСК и​ списке сделает ячейки​значения​ любой строки знаков.​ то по всему​ почему-то отсутствует функция​

​ To UBound(myArr, 1)​​PooHkrd​Не смог найти​ MsgBox «ненужные строки​ & iKey &​ Then Exit For​

​ As Long iText​​mouse​

​ xlA1, xlA1, xlAbsolute)​​: Этим средством думаю​ нужно? И по​ НАЙТИ.​ active. Можно сортировать​и​ Например, если ввести​ листуВсе верно, так​

​ НАЙТИ И ЗАМЕНИТЬ​​ For x =​: Я правильно понимаю,​ как настроить умный​ удалены!», 64, «конец»​ «*»ЦитатаJack Famous написал:​ Next If Not​ = Array(«05056280*»,»06056280*»,»01056280*») ‘список​: может так​End Sub​ ни как, перебирайте​ каким адресам расположено​

​С помощью функции «Поиск​​ результаты​примечания​г*д​ и есть во​

​ при выделении столбца​​ 0 To UBound(iText)​ что по факту​ экспор в ексель​
​ End Sub​​ чтобы можно было​ flag Then If​ слов на удаление​=ЕСЛИ(ЕОШ(НАЙТИ(«Турция»;E7));»Израиль»;»Турция»)​P.S. Четвертый параметр​ весь алфавит, выделяя​ то, что будем​ и замена» можно​Найти​доступны только на​, то будут найдены​

excelworld.ru

​ всех версиях​

Отсечение лишнего текста из ячейки

Shtein

Дата: Четверг, 13.10.2016, 11:10 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 103


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

Всем привет.
Прошу помочь в таком вроде простом вопросе, но я не могу пока сообразить.
Нужно из ячеек столбца А сделать, как в столбце С — то есть удалить из ячеек информацию в скобках, включая сами скобки. Я думал формулой ПРАВСИМВ и потом удалять как-то извлеченное из исходной ячейки. Но проблема в том, что наименований товара могут быть тысячи, и в скобках разное количество цифр, то есть этой формулой трудно определить, какое количество символов извлекать.
Может что-то посоветуете.


«В мире давным давно все известно, главное знать у кого спросить»
Рэй Бредбери.

 

Ответить

Pelena

Дата: Четверг, 13.10.2016, 11:12 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Здравствуйте.
Если скобки всегда в конце текста, то можно так

Код

=ЛЕВСИМВ(A2;ПОИСК(«(«;A2)-2)

если скобок может не быть, то

Код

=ЛЕВСИМВ(A2;ПОИСК(«(«;A2&» («)-2)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Shtein

Дата: Четверг, 13.10.2016, 11:23 |
Сообщение № 3

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 103


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

Ух ты, так просто, с функцией ПОИСК я не знаком, буду осваивать. Век живи- век учись. Спасибо victory


«В мире давным давно все известно, главное знать у кого спросить»
Рэй Бредбери.

 

Ответить

_Boroda_

Дата: Четверг, 13.10.2016, 11:30 |
Сообщение № 4

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А если нужно в том же месте, то можно нажать Контрл h, в Найти написать » (*)» (без кавычек) и нажать «заменить все»


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Shtein

Дата: Четверг, 13.10.2016, 12:00 |
Сообщение № 5

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 103


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

_Boroda_, это удаление по маске же? Подойдет, если будет Товар в одно слово, а вот если «Сладкий перец» или что-то вроде того, удалит же сразу после 1-го пробела остальное.


«В мире давным давно все известно, главное знать у кого спросить»
Рэй Бредбери.

Сообщение отредактировал ShteinЧетверг, 13.10.2016, 12:00

 

Ответить

_Boroda_

Дата: Четверг, 13.10.2016, 12:25 |
Сообщение № 6

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

если «Сладкий перец» или что-то вроде того, удалит же сразу после 1-го пробела остальное

Да ну? А попробовать не пробовали?


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Shtein

Дата: Четверг, 13.10.2016, 12:36 |
Сообщение № 7

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 103


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

_Boroda_, ооо, я был невнимателен)) я пользовался всегда таким способом » *», и удаляло все после пробела, потому подумал, что Вы предложили такой же способ, на скобки не обратил внимание.

Pelena, скажите, а можно ли модернизировать формулу, чтобы еще в отдельный столбец извлечь, то, что в скобках, столбец D.
Тут я предполагаю, надо как-то прикрутить формулу ПРАВСИМВ, сделал так

Код

=ПРАВСИМВ(Z9;ПОИСК(» «;Z9))

но у меня почему-то часть цифр извлекает.


«В мире давным давно все известно, главное знать у кого спросить»
Рэй Бредбери.

 

Ответить

_Boroda_

Дата: Четверг, 13.10.2016, 12:42 |
Сообщение № 8

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

ПОИСК считает кол-во символов слева, а Вы его справа считать пытаетесь.
Попробуйте так

Код

=ПОДСТАВИТЬ(A2;C2&» «;)

или так

Код

=ПСТР(A2;ПОИСК(«(«;A2);99)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Shtein

Дата: Четверг, 13.10.2016, 12:52 |
Сообщение № 9

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 103


Репутация:

0

±

Замечаний:
0% ±


Excel 2021

Спасибо огромное, записал в свои шпаргалки на память.


«В мире давным давно все известно, главное знать у кого спросить»
Рэй Бредбери.

 

Ответить

sv2014

Дата: Четверг, 13.10.2016, 21:24 |
Сообщение № 10

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 226


Репутация:

61

±

Замечаний:
0% ±


Excel 2013

Shtein, добрый вечер,вариант функций yyy и zzz в столбцах C и D соответственно или функция www

[vba]

Код

Function www$(t$)
With CreateObject(«VBScript.RegExp»): .Pattern = «(.+)»
    www = .Replace(t, «»)
End With
End Function

[/vba]

[vba]

Код

Function yyy$(t$)
  yyy = Split(t, «(«)(0)
End Function

[/vba]

[vba]

Код

Function zzz&(t$)
  zzz = Split(Split(t, «(«)(1), «)»)(0)
End Function

[/vba]

Сообщение отредактировал sv2014Четверг, 13.10.2016, 21:36

 

Ответить

pashatank

Дата: Четверг, 11.06.2020, 07:32 |
Сообщение № 11

Группа: Пользователи

Ранг: Участник

Сообщений: 58


Репутация:

0

±

Замечаний:
40% ±


Excel 2010

Здравствуйте.
Если скобки всегда в конце текста, то можно так

Pelena, здравствуйте! А если не везде в столбце артикулы есть в конце в скобках, в этом случае формула не пропускает, а ставит ЗНАЧ, можно как-то указать, что удалять нужно только артикулы на конце в скобках?

К сообщению приложен файл:

555.xlsx
(11.2 Kb)

 

Ответить

Pelena

Дата: Четверг, 11.06.2020, 08:40 |
Сообщение № 12

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Если артикулы всегда четырёхзначные и по тексту больше нет четырёхбуквенных слов в скобках, как в примере, то можно

Код

=ЛЕВСИМВ(A2;ПОИСК(«(????)»;A2&»(????)»)-2)

или более универсальная формула

Код

=ЕСЛИ(ПРАВСИМВ(A2)=»)»;ПОДСТАВИТЬ(A2;СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;50));50)););A2)

К сообщению приложен файл:

1363922.xlsx
(12.7 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

pashatank

Дата: Четверг, 11.06.2020, 09:10 |
Сообщение № 13

Группа: Пользователи

Ранг: Участник

Сообщений: 58


Репутация:

0

±

Замечаний:
40% ±


Excel 2010

Если артикулы всегда четырёхзначные и по тексту больше нет четырёхбуквенных слов в скобках, как в примере, то можно

Приогромнейше благодарю! Именно то, что нужно!

 

Ответить

Рассмотрим применение подстановочных знаков в Excel (символы звездочки «*», тильды «~» и вопросительного знака «?») и их использование при поиске и замене текстовых значений.


Приветствую всех, дорогие читатели блога TutorExcel.Ru.

В начале предлагаю вспомнить определение подстановочных знаков и понять, что же это такое и для каких целей они применяются в Excel. А затем уже разберем применение на конкретных примерах.
Подстановочные знаки — это специальные символы, которые могут принимать вид любого произвольного количества символов, другими словами, являются определенными масками комбинаций символов.
Всего в Excel есть 3 типа подобных знаков:

  • * (звездочка); Обозначает любое произвольное количество символов.
    Например, поиск по фразе «*ник» найдет слова типа «понедельник», «всадник», «источник» и т.д.
  • ? (вопросительный знак); Обозначает один произвольный символ.
    К примеру, поиск по фразе «ст?л» найдет «стол», «стул» и т.д.
  • ~ (тильда) с последующими знаками *, ? или ~. Обозначает конкретный символ *, ? или ~.
    Например, поиск по фразе «хор*» найдет все фразы начинающиеся на «хор» («хоровод», «хорошо» и т.д.). Поэтому для точного поиска «хор*» нужно использовать символ «~» и искать по фразе «хор~*». Наличие «~» гарантирует, что Excel прочитает следующий символ как текст, а не как подстановочный знак.

Использование таких спецсимволов может быть полезно при фильтрации данных, для сравнения текста, при поиске и замене текстовых значений. Давайте подробно остановимся на каждом из основных вариантов применения.

Фильтрация данных

Рассмотрим пример. Предположим, что у нас имеется список сотрудников компании и мы хотим отфильтровать только тех сотрудников, у которых фамилии начинаются на конкретную букву (к примеру, на букву «п»):

Список сотрудников
Для начала добавляем фильтр на таблицу (выбираем вкладку Главная -> Редактирование -> Сортировка и фильтр или нажимаем сочетание клавиш Ctrl + Shift + L).
Для фильтрации списка воспользуемся символом звездочки, а именно введем в поле для поиска «п*» (т.е. фамилия начинается на букву «п», после чего идет произвольный текст):

Применение фильтра
Фильтр определил 3 фамилии удовлетворяющих критерию (начинающиеся с буквы «п»), нажимаем ОК и получаем итоговый список из подходящих фамилий:

Фильтрация данных
В общем случае при фильтрации данных мы можем использовать абсолютно любые критерии, никак не ограничивая себя в выборе маски поиска (произвольный текст, различные словоформы, числа и т.д.).
К примеру, чтобы показать все варианты фамилий, которые начинаются на букву «к» и содержат букву «в», то применим фильтр «к*в*» (т.е. фраза начинается на «к», затем идет произвольный текст, потом «в», а затем еще раз произвольный текст).
Или поиск по «п?т*» найдет фамилии с первой буквой «п» и третьей буквой «т» (т.е. фраза начинается на «п», затем идет один произвольный символ, затем «т», и в конце опять произвольный текст).

Применение в функциях

Как уже говорилось выше, подстановочные знаки в Excel могут использоваться в качестве критерия при сравнении текста в различных функциях Excel (например, СЧЁТЕСЛИ, СУММЕСЛИ, СУММЕСЛИМН, ГПР, ВПР и другие).

Повторим задачу из предыдущего примера и подсчитаем количество сотрудников компании, фамилии которых начинаются на букву «п».
Воспользуемся функцией СЧЁТЕСЛИ, которая позволяет посчитать количество ячеек соответствующих указанному критерию.
В качестве диапазона данных укажем диапазон с сотрудниками (A2:A20), а в качестве критерия укажем запись «п*» (т.е. любая фраза начинающаяся на букву «п»):

Сравнение текста
Как и в первом примере, в результате мы получили ровно 3 фамилии.

Однако не все функции поддерживают применение подстановочных знаков. Некоторые из них (к примеру, функция НАЙТИ) любой символ воспринимают как текст, даже несмотря на то, что он может быть служебным.
С помощью функции НАЙТИ найдем в тексте позицию вхождения вопросительного знака и звездочки:

Функция НАЙТИ
Обратным примером служит аналогичная функция ПОИСК, в которой мы должно четко указать что ищем именно служебный символ:

Функция ПОИСК
Как видим результат у функций получился одинаковым, однако обращение к подстановочным знакам разное.

Инструмент «Найти и заменить»

Подстановочные знаки в Excel также можно использовать для поиска и замены текстовых значений в инструменте «Найти и заменить» (комбинация клавиш Ctrl + F для поиска и Ctrl + H для замены).

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

Чтобы несколько раз не искать данные по словам «молоко» или «малоко», при поиске воспользуемся критерием «м?локо» (т.е. вторая буква — произвольная):

Инструмент "Найти и заменить"
При этом не стоит забывать, что с помощью данного инструмента можно не только искать текст, но и заменять его (к примеру, заменить «м?локо» на «молоко»).

Практически наверняка каждый сталкивался со следующей ситуацией — в тексте присутствует символ звездочки, который необходимо удалить или заменить на какой-либо другой текст.
Однако при попытке заменить звездочку возникают трудности — при замене меняются абсолютно весь текст, что естественно и логично, так как Excel воспринимает символ «*» как любой произвольный текст.
Но мы теперь уже знаем как с этим бороться, поэтому в поле Найти указываем текст «~*» (явно показываем, что звездочка является специальным символом), а в поле Заменить на указываем на что заменяем звездочку, либо оставляем поле пустым, если хотим удалить звездочку:

Удаление звездочки
Аналогичная ситуация и при замене или удалении вопросительного знака и тильды.
Производя замену «~?» (для тильды — «~~») мы также без проблем сможем заменить или удалить спецсимвол.

Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru

Поделиться с друзьями:
Поиск по сайту:

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

Чтобы найти текст или числа, нажмите клавиши CTRL + Fили перейдите на вкладку главная > редактирование> найти & выберите > найти.

В поле найти введите текст или числа, которые вы хотите найти, или щелкните стрелку в поле найти и выберите в списке последний элемент поиска.

В условиях поиска можно использовать подстановочные знаки, например вопросительный знак (?) и звездочку (*).

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

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

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

? . Для ввода тильды нажмите клавиши SHIFT +

? . Для ввода тильды нажмите клавиши SHIFT +

, где клавиша тильда обычно находится над клавишей TAB.

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

Нажмите Заменить все или Заменить.

Совет: При нажатии кнопки заменить всевсе вхождения искомого условия будут заменены, в то время как Замена будет обновляться по одному вхождению за раз.

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

Для поиска данных на листе или во всей книге выберите в поле Искать вариант на листе или в книге.

Для поиска данных в строках или столбцах выберите в поле Просматривать вариант по строкам или по столбцам.

Чтобы найти данные с определенными подробностями, в поле Искать в выберите пункт формулы, значения, заметкиили Примечания.

Примечание: Формулы, значения, заметки и Примечания доступны только на вкладке » Поиск «. на вкладке заменить доступны только формулы .

Для поиска данных с учетом регистра установите флажок Учитывать регистр.

Для поиска ячеек, содержащих только символы, введенные в поле Найти, установите флажок Ячейка целиком.

Если вы хотите найти текст или числа с определенным форматированием, нажмите кнопку Формати выберите необходимые параметры в диалоговом окне Найти формат .

Совет: Чтобы найти ячейки, точно соответствующие определенному формату, можно удалить все условия в поле Найти, а затем выбрать ячейку с нужным форматированием в качестве примера. Щелкните стрелку рядом с кнопкой Формат, выберите пункт Выбрать формат из ячейки, а затем щелкните ячейку с форматированием, которое требуется найти.

Excel сохранит указанные параметры форматирования. Если при повторном поиске данных на листе не удается найти символы, которые вы знаете, возможно, потребуется удалить параметры форматирования из предыдущего поиска. В диалоговом окне Найти и заменить откройте вкладку Найти и нажмите кнопку Параметры, чтобы отобразить параметры форматирования. Затем щелкните стрелку рядом с кнопкой Формат и выберите пункт Очистить формат поиска.

Для поиска текста или чисел на листе также можно использовать функции поиска и поиска .

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Найти и заменить в Excel

Поиск и замена данных – одна из часто применяемых операций в Excel. Используют даже новички. На ленте есть большая кнопка.

Команда поиска придумана для автоматического обнаружения ячеек, содержащих искомую комбинацию символов. Поиск данных может производиться в определенном диапазоне, целом листе или даже во всей книге. Если активна только одна ячейка, то по умолчанию поиск происходит на всем листе. Если требуется осуществить поиск значения в диапазоне ячеек Excel, то такой диапазон нужно предварительно выделить.

Далее вызываем Главная → Редактирование → Найти и выделить → Найти (кнопка с рисунка выше). Поиск также можно включить с клавиатуры комбинацией клавиш Сtrl+F. Откроется диалоговое окно под названием Найти и заменить.

В единственном поле указывается информация (комбинация символов), которую требуется найти. Если не использовать подстановочные символы или т.н. джокеры (см. ниже), то Excel будет искать строгое совпадение заданных символов. Для вывода результатов поиска предлагается два варианта: выводить все результаты сразу – кнопка Найти все; либо выводить по одному найденному значению – кнопка Найти далее.

После запуска поиска программа Excel быстро-быстро просматривает содержимое листа (или указанного диапазона) на предмет наличия искомой комбинации символов. Если такая комбинация обнаружена, то в случае нажатия кнопки Найти все Excel вываливает все найденные ячейки.

Если в нижней части окна выделить любое значение и затем нажать Ctrl+A, то в диапазоне поиска будут выделены все соответствующие ячейки.

Если же запуск поиска произведен кнопкой Найти далее, то Excel выделяет ближайшую ячейку, соответствующую поисковому запросу. При повторном нажатии клавиши Найти далее (либо Enter с клавиатуры) выделяется следующая ближайшая ячейка (подходящая под параметры поиска) и т.д. После выделения последней ячейки Excel перепрыгивает на самую верхнюю и начинается все заново. На этом познания о поиске данных в Excel у большинства пользователей заканчиваются.

Поиск нестрогого соответствия символов

Иногда пользователь не знает точного сочетания искомых символов что существенно затрудняет поиск. Данные также могут содержать различные опечатки, лишние пробелы, сокращения и пр., что еще больше вносит путаницы и делает поиск практически невозможным. А может случиться и обратная ситуация: заданной комбинации соответствует слишком много ячеек и цель поиска снова не достигается (кому нужны 100500+ найденных ячеек?).

Для решения этих проблем очень хорошо подходят джокеры (подстановочные символы), которые сообщают Excel о сомнительных местах. Под джокерами могут скрываться различные символы, и Excel видит лишь их относительное расположение в поисковой фразе. Таких джокеров два: звездочка «*» (любое количество неизвестных символов) и вопросительный знак «?» (один «?» – один неизвестный символ).

Так, если в большой базе клиентов нужно найти человека по фамилии Иванов, то поиск может выдать несколько десятков значений. Это явно не то, что вам нужно. К поиску можно добавить имя, но оно может быть внесено самым разным способом: И.Иванов, И. Иванов, Иван Иванов, И.И. Иванов и т.д. Используя джокеры, можно задать известную последовательно символов независимо от того, что находится между. В нашем примере достаточно ввести и*иванов и Excel отыщет все выше перечисленные варианты записи имени данного человека, проигнорировав всех П. Ивановых, А. Ивановых и проч. Секрет в том, что символ «*» сообщает Экселю, что под ним могут скрываться любые символы в любом количестве, но искать нужно то, что соответствует символам «и» + что-еще + «иванов». Этот прием значительно повышает эффективность поиска, т.к. позволяет оперировать не точными критериями.

Если с пониманием искомой информации совсем туго, то можно использовать сразу несколько звездочек. Так, в списке из 1000 позиций по поисковой фразе мол*с*м*уход я быстро нахожу позицию «Мол-ко д/сн мак. ГАРНЬЕР Осн.уход д/сух/чув.к. 200мл» (это сокращенное название от «Молочко для снятия макияжа Гараньер Основной уход….»). При этом очевидно, что по фразе «молочко» или «снятие макияжа» поиск ничего бы не дал. Часто достаточно ввести первые буквы искомых слов (которые наверняка присутствуют), разделяя их звездочками, чтобы Excel показал чудеса поиска. Главное, чтобы последовательность символов была правильной.

Есть еще один джокер – знак «?». Под ним может скрываться только один неизвестный символ. К примеру, указав для поиска критерий 1?6, Excel найдет все ячейки содержащие последовательность 106, 116, 126, 136 и т.д. А если указать 1??6, то будут найдены ячейки, содержащие 1006, 1016, 1106, 1236, 1486 и т.д. Таким образом, джокер «?» накладывает более жесткие ограничения на поиск, который учитывает количество пропущенных знаков (равный количеству проставленных вопросиков «?»).

В случае неудачи можно попробовать изменить поисковую фразу, поменяв местами известные символы, сократив их, добавить новые подстановочные знаки и др. Однако это еще не все нюансы поиска. Бывают ситуации, когда в упор наблюдаешь искомую ячейку, но поиск почему-то ее не находит.

Продвинутый поиск

Мало, кто обращается к кнопке Параметры в диалоговом окне Найти и заменить. А зря. В ней скрыто много полезностей, которые помогают решить проблемы поиска. После нажатия кнопки Параметры добавляются дополнительные поля, которые еще больше углубляют и расширяют условия поиска.

С помощью дополнительных параметров поиск в Excel может заиграть новыми красками в прямом смысле слова. Так, искать можно не только заданное число или текст, но и формат ячейки (залитые определенным цветом, имеющие заданные границы и т.д.).

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

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

Поиск формата – это хорошо, но чаще искать приходится конкретные значения. И тут Excel предоставляет дополнительные возможности для расширения и уточнения параметров поиска.

Первый выпадающий список Искать предлагает ограничить поиск одним листом или расширить его до целой книги.

По умолчанию (если не лезть в параметры) поиск происходит только на активном листе. Для повторения поиска на другом листе все действия нужно проделать еще раз. А если таких листов много, то поиск данных может отнять немало времени. Однако если выбрать пункт Книга, то поиск произойдет сразу по всем листам активной книги. Выгода очевидна.

Список Просматривать с выпадающими вариантами по строкам или столбцам, видимо, сохранился от старых версий, когда поиск требовал много ресурсов и времени. Сейчас это не актуально. В общем, я не пользуюсь.

В следующем выпадающем списке находится замечательная возможность поиска по формулам, значениям, а также примечаниям. По умолчанию Excel производит поиск в формулах либо, если их нет, в содержимом ячейки. Например, если искать фамилию Иванов, а фамилия эта есть результат формулы (копируется из соседнего листа), то поиск нечего не даст, т.к. в ячейке нет искомого перечня символов. По той же причине не удастся отыскать число, являющееся результатом работы какой-либо функции. Поэтому бывает смотришь в упор на ячейку, видишь искомое значение, а Excel его почему-то не видит. Это не глюк, это настройка поиска. Измените данный параметр на Значения и поиск будет осуществляться по тому, что отражено в ячейке, независимо от содержимого. Например, если в ячейке содержится результат вычисления 1/6 (как значение, а не формула) и при этом формат отражает только 3 знака после запятой (т.е 0,167), то поиск символов «167» при выборе параметра Формулы эту ячейку не обнаружит (реальное содержимое ячейки — это 0,166666…), а при выборе Значения поиск увенчается успехом (искомые символы совпадают с тем, что отражается в ячейке). И последний пункт в данном списке – Примечания. Поиск осуществляется только в примечаниях. Очень может помочь, т.к. примечания часто скрыты.

В диалоговом окне поиска есть еще две галочки Учитывать регистр и Ячейка целиком. По умолчанию Excel игнорирует регистр, но можно сделать так, чтобы «иванов» и «Иванов» отличались. Галочка Ячейка целиком также может оказаться весьма полезной, если ищется ячейка не с указанным фрагментом, а полностью состоящая из искомых символов. К примеру, как найти ячейки, содержащие только 0? Обычный поиск не подойдет, т.к. будут выдаваться и 10, и 100. Зато, если установить галочку Ячейка целиком, то все пойдет, как по маслу.

Поиск и замена данных

Данные обычно ищутся не просто так, а для каких-то целей. Такой целью часто является замена искомой комбинации (или формата) на другую. Чтобы найти и заменить в выделенном диапазоне Excel одни значения на другие, в окне Найти и заменить необходимо выбрать вкладку Замена. Либо сразу выбрать на ленте команду Главная → Редактирование → Найти и выделить → Заменить.

Еще удобнее применить сочетание горячих клавиш найти и заменить в Excel – Ctrl+H.

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

По аналогии с простым поиском, менять можно и формат.

Кнопка Заменить все позволяет одним махом заменить одни символы на другие. После замены Excel показывается информационное окно с количеством произведенных замен. Кнопка Заменить позволяет производить замену по одной ячейке после каждого нажатия. Если найти и заменить в Excel не работает, попробуйте изменить параметры поиска.

Напоследок рассмотрим один классный трюк с поиском и заменой. Многие знают, что в ячейку можно вставить разрыв строк с помощью комбинации Alt+Enter.

А как быстро удалить все разрывы строк? Обычно это делают вручную. Однако ловкое использование поиска и замены сэкономит много времени. Вызываем команду поиска и замены с помощью комбинации Ctrl+H. Теперь в строке поиска нажимаем Ctrl+J — это символ разрыва строки — на экране появится точка. В строке замены указываем, например, пробел.

Жмем Ok. Все переносы строк заменились пробелами.

Функция поиска и замены при правильном использовании заменяет часы работы неопытного пользователя. Настоятельно рекомендую использовать все вышеизложенное. Если что-то не ищется в ваших данных или наоборот, выдает слишком много лишних ячеек, то попробуйте уточнить поиск с помощью подстановочных символов «*» и «?» или настраиваемых параметров поиска. Важно понимать, что если вы ничего не нашли, это еще не значит, что там этого нет.

Теперь вы знаете, как в эксель сделать поиск по столбцу, строке, любому диапазону, листу или даже книге.

Excel замена по маске

Условно есть три столбца A , B , C . В первом имена в перемешку, во втором уникальный id , в третьем соответствующее этому id значение.

Всем значениям Вася нужно присвоить 1 , Петя : 2 , Лёша : 3 и т.д — короче присвоить всем значениям соответствующий id из столбца B .

Если нумерация идёт подряд, то можно в столбце D написать формулу

Если не подряд, то

Выделить получившиеся результат и Ctrl + С (не Ctrl + X )

Нажать на стрелочку и выбрать вставку значений:

Удалить лишние данные в столбце D.

Формулы:

Из всех предложенных формульных вариантов самый быстрый ИНДЕКС/ПОИСКПОЗ (INDEX/MATCH), показанный Qwertiy.

Если поменять местами значения столбцов В и С (сначала искомое, правее — число), то достачно

Функция пользователя (UDF)

Alt+F11 — вход в редактор VBA. Слева — окно дерева проекта. Добавить в проект общий модуль (Insert-Module), разместить там код.

В ячейку записать формулу:

где A1 — значение, которому нужно присвоить цифровой код, $B$1:$C$4 — диапазон соответствий.

Протянуть формулу по строкам.

Если нужно заменить значения в первом столбце найденными соответствиями и список соответствий небольшой, можно обойтись штатным инструментом:

1) выделить столбец А

3) НАЙТИ Вася, ЗАМЕНИТЬ 1, Заменить_все, ОК и т.д.

Макрос.

Если диапазоны большие, если работа не разовая — лучше воспользоваться приведенным ниже кодом для замены значений в столбце А. Код разместить в общем модуле. Запускать обработку можно любой фигурой, рисунком etc., назначив им макрос.

Если менять не нужно, но подставить соответствия, массив выгружать в другой столбец (например, с .Range(«D1»))

Подстановочные знаки (символы *, ? и

Рассмотрим применение подстановочных знаков в Excel (символы звездочки «*», тильды «

» и вопросительного знака «?») и их использование при поиске и замене текстовых значений.

Приветствую всех, дорогие читатели блога TutorExcel.Ru.

В начале предлагаю вспомнить определение подстановочных знаков и понять, что же это такое и для каких целей они применяются в Excel. А затем уже разберем применение на конкретных примерах.
Подстановочные знаки — это специальные символы, которые могут принимать вид любого произвольного количества символов, другими словами, являются определенными масками комбинаций символов.
Всего в Excel есть 3 типа подобных знаков:

  • * (звездочка); Обозначает любое произвольное количество символов. Например, поиск по фразе «*ник» найдет слова типа «понедельник», «всадник», «источник» и т.д.
  • ? (вопросительный знак); Обозначает один произвольный символ. К примеру, поиск по фразе «ст?л» найдет «стол», «стул» и т.д.

(тильда) с последующими знаками *, ? или

. Обозначает конкретный символ *, ? или

. Например, поиск по фразе «хор*» найдет все фразы начинающиеся на «хор» («хоровод», «хорошо» и т.д.). Поэтому для точного поиска «хор*» нужно использовать символ «

» и искать по фразе «хор

» гарантирует, что Excel прочитает следующий символ как текст, а не как подстановочный знак.

Использование таких спецсимволов может быть полезно при фильтрации данных, для сравнения текста, при поиске и замене текстовых значений. Давайте подробно остановимся на каждом из основных вариантов применения.

Фильтрация данных

Рассмотрим пример. Предположим, что у нас имеется список сотрудников компании и мы хотим отфильтровать только тех сотрудников, у которых фамилии начинаются на конкретную букву (к примеру, на букву «п»):


Для начала добавляем фильтр на таблицу (выбираем вкладку Главная -> Редактирование -> Сортировка и фильтр или нажимаем сочетание клавиш Ctrl + Shift + L).
Для фильтрации списка воспользуемся символом звездочки, а именно введем в поле для поиска «п*» (т.е. фамилия начинается на букву «п», после чего идет произвольный текст):


Фильтр определил 3 фамилии удовлетворяющих критерию (начинающиеся с буквы «п»), нажимаем ОК и получаем итоговый список из подходящих фамилий:


В общем случае при фильтрации данных мы можем использовать абсолютно любые критерии, никак не ограничивая себя в выборе маски поиска (произвольный текст, различные словоформы, числа и т.д.).
К примеру, чтобы показать все варианты фамилий, которые начинаются на букву «к» и содержат букву «в», то применим фильтр «к*в*» (т.е. фраза начинается на «к», затем идет произвольный текст, потом «в», а затем еще раз произвольный текст).
Или поиск по «п?т*» найдет фамилии с первой буквой «п» и третьей буквой «т» (т.е. фраза начинается на «п», затем идет один произвольный символ, затем «т», и в конце опять произвольный текст).

Применение в функциях

Как уже говорилось выше, подстановочные знаки в Excel могут использоваться в качестве критерия при сравнении текста в различных функциях Excel (например, СЧЁТЕСЛИ, СУММЕСЛИ, СУММЕСЛИМН, ГПР, ВПР и другие).

Повторим задачу из предыдущего примера и подсчитаем количество сотрудников компании, фамилии которых начинаются на букву «п».
Воспользуемся функцией СЧЁТЕСЛИ, которая позволяет посчитать количество ячеек соответствующих указанному критерию.
В качестве диапазона данных укажем диапазон с сотрудниками (A2:A20), а в качестве критерия укажем запись «п*» (т.е. любая фраза начинающаяся на букву «п»):


Как и в первом примере, в результате мы получили ровно 3 фамилии.

Однако не все функции поддерживают применение подстановочных знаков. Некоторые из них (к примеру, функция НАЙТИ) любой символ воспринимают как текст, даже несмотря на то, что он может быть служебным.
С помощью функции НАЙТИ найдем в тексте позицию вхождения вопросительного знака и звездочки:


Обратным примером служит аналогичная функция ПОИСК, в которой мы должно четко указать что ищем именно служебный символ:


Как видим результат у функций получился одинаковым, однако обращение к подстановочным знакам разное.

Инструмент «Найти и заменить»

Подстановочные знаки в Excel также можно использовать для поиска и замены текстовых значений в инструменте «Найти и заменить» (комбинация клавиш Ctrl + F для поиска и Ctrl + H для замены).

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

Чтобы несколько раз не искать данные по словам «молоко» или «малоко», при поиске воспользуемся критерием «м?локо» (т.е. вторая буква — произвольная):


При этом не стоит забывать, что с помощью данного инструмента можно не только искать текст, но и заменять его (к примеру, заменить «м?локо» на «молоко»).

Как заменить звездочку «*» в Excel?

Практически наверняка каждый сталкивался со следующей ситуацией — в тексте присутствует символ звездочки, который необходимо удалить или заменить на какой-либо другой текст.
Однако при попытке заменить звездочку возникают трудности — при замене меняются абсолютно весь текст, что естественно и логично, так как Excel воспринимает символ «*» как любой произвольный текст.
Но мы теперь уже знаем как с этим бороться, поэтому в поле Найти указываем текст «


(явно показываем, что звездочка является специальным символом), а в поле Заменить на указываем на что заменяем звездочку, либо оставляем поле пустым, если хотим удалить звездочку:


Аналогичная ситуация и при замене или удалении вопросительного знака и тильды.
Производя замену «


(для тильды — «


») мы также без проблем сможем заменить или удалить спецсимвол.

Поиск и замена в Excel

Поиск и замена в Excel – это достаточно мощный и удобный инструмент, который позволяет находить, а при необходимости и заменять, информацию на рабочем листе. В рамках данного урока Вы научитесь выполнять поиск в заданной области документа Excel, а также изменять найденную информацию на требуемое значение.

При работе с большим количеством данных в Excel, иногда достаточно трудно отыскать какую-то конкретную информацию. И, как правило, такой поиск занимает очень много времени. Excel предлагает прекрасный инструмент поиска. Вы можете с легкостью отыскать любую нужную информацию в рабочей книге Excel с помощью команды Найти, которая к тому же позволяет еще и изменить данные с помощью инструмента Найти и заменить.

Поиск данных в ячейках Excel

В нашем примере мы воспользуемся командой Найти, чтобы отыскать требуемое имя в длинном списке сотрудников.

Если перед использованием команды Найти Вы выделите одну ячейку, то Excel будет выполнять поиск во всем листе. А если диапазон ячеек, то только внутри этого диапазона

  1. На вкладке Главная воспользуйтесь командой Найти и выделить, а затем из раскрывающегося списка выберите пункт Найти.
  2. Появится диалоговое окно Найти и заменить. Введите данные, которые необходимо отыскать. В нашем примере мы введем имя сотрудника.
  3. Нажмите Найти далее. Если данные присутствуют на листе, то они будут выделены.
  4. Если Вы еще раз нажмете на кнопку Найти далее, то увидите следующий вариант поиска. Вы также можете выбрать Найти все, что бы увидеть все варианты, которые для Вас отыскал Excel.
  5. Закончив поиск, воспользуйтесь кнопкой Закрыть, чтобы выйти из диалогового окна Найти и Заменить.

Вы можете получить доступ к команде Найти с помощью комбинации клавиш Ctrl+F на клавиатуре.

Чтобы увидеть дополнительные параметры поиска и замены, нажмите кнопку Параметры в диалоговом окне Найти и заменить.

Замена содержимого ячейки в Excel

Бывают случаи, когда допущена ошибка, повторяющаяся во всей книге Excel. Например, неправильно написано чье-то имя или необходимо изменить определенное слово или фразу на другую. Вы можете воспользоваться инструментом Найти и заменить, чтобы быстро внести исправления. В нашем примере мы воспользуемся командой Заменить, чтобы исправить список адресов электронной почты.

  1. На вкладке Главная нажмите команду Найти и выделить, а затем из раскрывающегося списка выберите пункт Заменить.
  2. Появится диалоговое окно Найти и заменить. Введите текст, который Вы ищете в поле Найти.
  3. Введите текст, на который требуется заменить найденный, в поле Заменить на. А затем нажмите Найти далее.
  4. Если значение будет найдено, то содержащая его ячейка будет выделена.
  5. Посмотрите на текст и убедитесь, что Вы согласны заменить его.
  6. Если согласны, тогда выберите одну из опций замены:
    • Заменить: исправляет по одному значению зараз.
    • Заменить все: исправляет все варианты искомого текста в книге. В нашем примере мы воспользуемся этой опцией для экономии времени.

  • Появится диалоговое окно, подтверждающее количество замен, которые будут сделаны. Нажмите ОК для продолжения.
  • Содержимое ячеек будет заменено.
  • Закончив, нажмите Закрыть, чтобы выйти из диалогового окна Найти и заменить.
  • In this guide, we’re going to show you how to remove all rows containing specific value in Excel. We are going to be taking a look at two methods:

    • Find and Replace
    • Filter

    These methods are good for removing all rows containing a specific value, such as repeating headers.

    Removing all rows containing specific value using Find and Replace

    1. If you wish to perform removing a specific range, select your data, including the values you want to remove. Otherwise, you do not need to select any cells.
    2. Press the Ctrl + F key combination to open Find and Replace.
    3. Type in the value in the rows you want to remove.
    4. Click Find All.
    5. Select any of the found values in the results pane.
    6. Press Ctrl + A to select all of them. You can select specific values you want to remove by using Ctrl or Shift keys.
    7. Close the Find and Replace window.
      How to remove all rows containing specific value in Excel - Find Replace
    8. Press Ctrl + — to open Delete
    9. Select Entire row
    10. Click OK button to delete those rows.

    After clicking OK, Excel will remove all rows containing the selected cells.

    Warning: If found and selected items contain an Excel Table header, the Ctrl + — shortcut will not work.

    Removing all rows containing specific value using Filter

    This approach is more suitable for data in a table structure.

    1. Select your data, including the values you want to remove.
    2. Press Ctrl + Shift + L to enable Filters. Alternatively, you can click Filter in Data tab.
    3. Click the down arrow in the header of the column that contains the value you want to select.
    4. Select the value(s) you want to remove in the filter dialog.
    5. Click OK to apply the filter.
      How to remove all rows containing specific value in Excel - Filter
    6. Select each cell individually by clicking cells while holding down the Ctrl key. Don’t use the Shift key or drag the mouse to select cells.
    7. Once the cells are selected, press Ctrl + —.
    8. Click OK on prompt dialog to delete rows.

    Clear the filters to see the remaining rows.

    Skip to content

    Удаление символов или текста при помощи регулярных выражений

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

    Вы когда-нибудь задумывались, насколько мощным был бы Excel, если бы кто-нибудь мог обогатить его набор инструментов регулярными выражениями? Мы не только подумали, но и поработали над этим :) А теперь вы можете добавить эту замечательную функцию RegEx в свои собственные книги и использовать регулярные выражения, чтобы удалить часть текста, соответствующего шаблону!

    Ранее мы рассмотрели, как использовать регулярные выражения для замены текста в Excel. Для этого мы создали специальную функцию Regex Replace. Как оказалось, функция выходит за рамки своего основного предназначения и может не только заменять строки, но и удалять их. Как такое могло быть? С точки зрения Excel, удаление значения – это не что иное, как замена его пустой строкой, в чем функция Regex очень хороша!

    •  Функция VBA RegExp для удаления символов и текста в Excel
    • Удалить все совпадения или конкретное совпадение
    • Регулярное выражение для удаления определенных символов
    • Удаляем группы символов с помощью регулярного выражения
    • Регулярное выражение для удаления нечисловых символов
    • Регулярное выражение для удаления всего после пробела
    • Удаление текста после определенного символа
    • Регулярное выражение для удаления всего до пробела
    • Регулярное выражение для удаления всего перед символом
    • Регулярное выражение для удаления всего, кроме
    • Regex для удаления HTML-тегов в Excel
    • Инструмент удаления символов и текста Ablebits Regex
    • Как удалить текст в скобках с помощью регулярного выражения

    Функция VBA RegExp для удаления символов и текста в Excel

    Как мы все знаем, регулярные выражения не поддерживаются в Excel по умолчанию. Чтобы включить их, вам необходимо создать свою собственную пользовательскую функцию. Хорошая новость в том, что такая функция уже написана, протестирована и готова к использованию. Все, что вам нужно сделать, это скопировать этот код , вставить код в редактор VBA, а затем сохранить файл как книгу с поддержкой макросов (.xlsm).

    Функция имеет следующий синтаксис:

    RegExpReplace (текст; шаблон; замена; [instance_num]; [match_case])

    Первые три аргумента являются обязательными, два последних — необязательными.

    Где:

    • Текст – текстовая строка для поиска.
    • Шаблон – регулярное выражение для поиска.
    • Замена – текст, на который нужно заменить. Чтобы удалить подстроки, соответствующие шаблону, используйте для замены пустую строку («»).
    • Instance_num (необязательно) – экземпляр, который нужно заменить. Если не указан, заменяются все найденные совпадения (по умолчанию).
    • Match_case (необязательно) – логическое значение, указывающее, следует ли учитывать регистр текста или игнорировать его. Для сопоставления с учетом регистра используйте ИСТИНА (по умолчанию); для нечувствительности к регистру – ЛОЖЬ.

    Для получения дополнительной информации см. Функцию RegExpReplace .

    Как упоминалось выше, чтобы удалить части текста, соответствующие шаблону, вы должны заменить их пустой строкой. Итак, общая формула принимает такую ​​форму для удаления текста:

    RegExpReplace(текст, шаблон; «»; [instance_num]; [match_case])

    В приведенных ниже примерах показаны различные способы применения этой базовой концепции.

    Удалить все совпадения или конкретное совпадение

    Функция RegExpReplace предназначена для поиска всех подстрок, соответствующих заданному регулярному выражению. То, какие вхождения следует удалять, определяется четвертым необязательным аргументом с именем instance_num.

    По умолчанию это «все совпадения». Если аргумент instance_num опущен, все найденные совпадения удаляются. Чтобы удалить конкретное, укажите его порядковый номер.

    Предположим, вы хотите удалить нумерацию в приведенных ниже строках. Все такие числа начинаются со знака решетки (#) и содержат ровно 5 цифр. Итак, мы можем идентифицировать их с помощью этого регулярного выражения:

    Шаблон: #d{5}b

    Граница слова b указывает, что соответствующая подстрока не может быть частью более длинной строки, например #10000001.

    Чтобы удалить все совпадения, аргумент instance_num не определен:

    =RegExpReplace(A5; $A$2; «»)

    Чтобы исключить только первое вхождение, мы устанавливаем аргумент instance_num равным 1:

    =RegExpReplace(A5; $A$2; «»; 1)

    Обе эти формулы вы видите на скриншоте выше.

    Регулярное выражение для удаления определенных символов

    Чтобы удалить определенные символы из строки, просто запишите все эти ненужные символы и разделите их вертикальной чертой | . Она действует в регулярных выражениях как оператор ИЛИ.

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

    Шаблон: (|)|-|.|s

    Формула будет для нашего примера такая:

    =RegExpReplace(A5; “(|)|-|.|s”; “”)

    Результатом этой операции является 10-значное число, например «1234567890».

    Для удобства вы можете ввести регулярное выражение в отдельную ячейку и ссылаться на неё, используя абсолютную ссылку, например $A$2:

    =RegExpReplace(A5; $A$2; «»)

    А затем вы можете стандартизировать отображение телефонного номера по своему усмотрению, используя оператор конкатенации (&) и текстовые функции, такие как ПРАВСИМВ, ЛЕВСИМВ и ПСТР.

    Например, чтобы записать все номера телефонов в формате (123) 456-7890, формула примет следующий вид:

    =»(«&ЛЕВСИМВ(B5; 3)&») «&ПСТР(B5; 4; 3)&»-«&ПРАВСИМВ(B5; 4)

    Где B5 – ячейка, в которой записана предыдущая формула RegExpReplace.
    Пример вы видите на скриншоте выше.

    Удаляем группы символов с помощью регулярного выражения

    В одном из наших руководств мы рассмотрели, как удалить нежелательные символы в Excel с помощью встроенных функций. Регулярные выражения значительно упрощают эту работу. Вместо того, чтобы перечислять все символы, которые нужно удалить, просто укажите те, которые хотите оставить :)

    Шаблон основан на инвертированных символьных классах – перед списком символов помещается этот значок ^, чтобы искать любой одиночный символ НЕ в скобках. Квантификатор + заставляет рассматривать последовательные символы как одно совпадение, так что замена выполняется для соответствующей подстроки, а не для каждого отдельного символа.

    В зависимости от ваших потребностей выберите одно из следующих регулярных выражений.

    Чтобы удалить не буквенно-цифровые символы, то есть все символы, кроме букв и цифр:

    [^0-9a-zA-Zа-яА-Я]+

    Чтобы удалить все символы, кроме буквцифр и пробелов:

    [^0-9a-zA-Zа-яА-Я ]+

    Чтобы удалить все символы, кроме буквцифр и подчеркивания, вы можете использовать W, обозначающий любой символ, НЕ являющийся буквенно-цифровым символом или подчеркиванием:

    W+

    Если вы хотите сохранить некоторые другие символы, например знаки препинания, поместите их в квадратные скобки.

    Например, чтобы удалить любой символ, кроме буквы, цифры, точки, запятой или пробела, используйте следующее регулярное выражение:

    [^0-9a-zA-Zа-яА-Я., ]+

    Это успешно удаляет все специальные символы. Но если в тексте встречалось подряд несколько пробелов, то остается лишний пробел.

    Чтобы исправить это, вы можете вложить указанную выше функцию в СЖПРОБЕЛЫ, которая заменяет несколько пробелов одним.

    =СЖПРОБЕЛЫ(RegExpReplace(A5; $A$2; «»))

    Результат вы видите на скриншоте ниже.

    Регулярное выражение для удаления нечисловых символов

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

    Соответствует любому символу, который НЕ является цифрой:

    D+

    А вот так можно найти все нечисловые символы с помощью отрицательных классов:

    [^0-9]+

    или

    [^d]+
    В результате удалены все символы, кроме цифр:

    Совет. Если ваша цель – удалить текст и разнести оставшиеся числа в отдельные ячейки или поместить их всех в одну ячейку, разделенную каким-то разделителем, используйте функцию RegExpExtract, как описано в статье «Как извлекать числа из строки с помощью регулярных выражений».

    Регулярное выражение для удаления всего после пробела

    Чтобы стереть все, что находится после пробела, используйте символ пробела – обычный или такой s, чтобы найти первый пробел. А затем примените  .*, чтобы найти любые символы после него.

    Если у вас есть однострочные строки, которые содержат только нормальные пробелы (значение 32 в 7-битной системе ASCII), на самом деле не имеет значения, какое из следующих регулярных выражений вы используете. Если же в ячейке текст записан с переносами строки, то это имеет значение.

    Чтобы удалить все после символа пробела, используйте это регулярное выражение:

    Шаблон: .*

    =RegExpReplace(A5; “.*”; «»)

    Эта формула удалит все, что находится после первого пробела в каждой строке. Чтобы результаты отображались правильно, обязательно включите в формате ячейки перенос текста.

    Чтобы удалить все, что находится после пробела (включая другие пробелы, табуляцию, возврат каретки и перенос строки), используйте такое регулярное выражение:

    Шаблон: s.*

    =RegExpReplace(A5; «s.*»; «»)

    Поскольку s соответствует нескольким различным типам пробелов, включая новую строку (n), эта формула удаляет все, что находится после первого пробела в ячейке, независимо от того, сколько в ней строк.

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

    Удаление текста после определенного символа

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

    Чтобы обрабатывать каждую строку текста отдельно:

    Общий шаблон:   символ. *

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

    Чтобы обработать все строки текста как одну строку:

    Общий шаблон:    символ (.|n)*

    Чтобы удалить что-либо после символа, включая новые строки, к регулярному выражению добавляется n.

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

    ,. *

    ,(.|n)*

    На скриншоте ниже вы можете увидеть, чем отличаются результаты.

    Удалены все символы либо до конца каждой строки, либо до конца всего текста в ячейке.

    Регулярное выражение для удаления всего до пробела

    При работе с длинными строками текста иногда может потребоваться сделать их короче, удалив одну и ту же часть информации во всех ячейках. Ниже мы обсудим два таких случая.

    Удалите все до последнего пробела

    Как и в предыдущем примере, регулярное выражение зависит от вашего понимания термина «пробел».

    Это регулярное выражение будет соответствовать чему-либо до последнего пробела в строке (добавляются кавычки, чтобы сделать пробел после звездочки заметным).

    Шаблон: «.* «

    Чтобы получить все символы перед последним пробелом в тексте (включая пробел, табуляцию, возврат каретки и новую строку), используйте это регулярное выражение.

    Шаблон: .*s

    Особенно заметна разница на многострочных значениях.

    Удалить все перед первым пробелом

    Чтобы сопоставить что-либо до первого пробела в строке, вы можете использовать это регулярное выражение:

    ^[^] * +

    С начала строки ^ мы сопоставляем ноль или несколько непробельных символов [^ ]*, за которыми сразу же следует один или несколько пробелов +. Последняя часть добавлена ​​для предотвращения потенциальных пробелов в результатах.

    Чтобы удалить текст перед первым пробелом в каждой строке, формула записывается в режиме «все совпадения» по умолчанию (аргумент instance_num опущен):

    =RegExpReplace(A5; “^[^ ]* +”; «»)

    Чтобы удалить текст перед первым пробелом в первой строке и оставить все остальные строки нетронутыми, аргумент instance_num устанавливается в 1:

    =RegExpReplace(A5; “^[^ ]* +”; «»; 1)

    Можно пометить шаблон в отдельную ячейку и зафиксировать ее абсолютной ссылкой, как это сделано на скриншоте ниже.

    Регулярное выражение для удаления всего перед символом

    Самый простой способ удалить весь текст перед определенным символом – использовать такое регулярное выражение:

    Общий шаблон : ^[^символ]*символ

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

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

    ^[^:]*:

    Чтобы избежать пробелов в начале результатов, добавьте в конец пробел s*. Это удалит все до первого двоеточия и обрежет все пробелы сразу после него:

    ^[^:]*:s*

    =RegExpReplace(A5; “^[^:]*:s* ”; «»)

    Регулярное выражение для удаления всего, кроме

    Чтобы удалить все символы из строки, кроме тех, которые вы хотите сохранить, используйте классы символов с отрицанием.

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

    [^a-zа-я.]+

    Фактически, здесь можно было бы обойтись без квантификатора +, поскольку наша функция заменяет все найденные совпадения. Квантификатор просто делает это немного быстрее – вместо обработки каждого отдельного символа вы заменяете подстроку.

    =RegExpReplace(A5; «[^a-zа-я.]+»; «»)

    Regex для удаления HTML-тегов в Excel

    Прежде всего, следует отметить, что HTML не является обычным языком, поэтому его синтаксический анализ с использованием регулярных выражений – не самый лучший способ. Тем не менее, регулярные выражения определенно могут помочь удалить теги из ваших ячеек, чтобы сделать ваш набор данных более чистым.

    Учитывая, что теги html всегда помещаются в угловые скобки <>, вы можете найти их, используя одно из следующих регулярных выражений.

    Отрицательный класс:

    Шаблон: <[^>]*>

    Здесь мы сопоставляем открывающую угловую скобку, за которой следует ноль или более вхождений любого символа, кроме закрывающей угловой скобки [^>]*, до ближайшей закрывающей угловой скобки.

    Ленивый поиск:

    <.*?>

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

    Какой бы вариант вы бы ни выбрали, результат будет абсолютно одинаковым.

    Например, чтобы удалить все теги html из строки в A5 и оставить текст, формула будет следующей:

    =RegExpReplace(A5, «<.*?>», «»)

    Это решение идеально подходит для однострочного текста (строки 5–9). Для нескольких строк (строки 10–12) результаты сомнительны — тексты из разных тегов сливаются в один. Это правильно или нет? Боюсь, это нелегко решить — все зависит от вашего понимания желаемого результата. Например, в B11 ожидается результат «A1»; в то время как в B10 вы можете захотеть, чтобы «значение1» и «значение2» ​​были разделены пробелом.

    Чтобы удалить теги html и разделить оставшийся текст пробелами, вы можете поступить следующим образом:

    1. Заменить теги пробелами » «, а не пустыми строками:

    =RegExpReplace(A5, «<.*?>», » «)

    1. Сократить несколько пробелов до одного символа пробела:

    =RegExpReplace(RegExpReplace(A10; «<[^>]*>»; » «); » +»; » «)

    1. Обрезать начальные и конечные пробелы:

    =СЖПРОБЕЛЫ(RegExpReplace(RegExpReplace(A5; «<[^>]*>»; » «); » +»; » «))

    Результат будет примерно таким:

    В результате импортированный текст стал совершенно читаемым.

    Инструмент удаления символов и текста Ablebits Regex

    Если у вас была возможность использовать Ultimate Suite for Excel , вы, вероятно, уже обнаружили новые инструменты Regex, представленные в недавнем выпуске. Прелесть этих функций Regex на основе .NET заключается в том, что они, во-первых, поддерживают полнофункциональный синтаксис регулярных выражений, свободный от ограничений VBA RegExp, и, во-вторых, не требуют вставки какого-либо кода VBA в ваши книги, поскольку вся интеграция кода выполняется автоматически.

    Ваша часть работы — создать регулярное выражение и передать его функции :) Позвольте мне показать вам, как это сделать, на практическом примере.

    Как удалить текст в скобках с помощью регулярного выражения

    В длинных текстовых строках менее важная информация часто заключена в [скобки] и (круглые скобки). Как удалить эти ненужные подробности, сохранив при этом все остальные данные?

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

    Шаблон:  ((.*?))|([.*?])

    Хитрость заключается в использовании ленивого квантификатора (*?) для поиска кратчайшей возможной подстроки. Первая группа ((.*?)) соответствует содержимому от открывающей круглой скобки до первой закрывающей скобки. Вторая группа ([.*?]) соответствует находящемуся от открывающей квадратной скобки до первой закрывающей скобки. Знак | действует как оператор ИЛИ.

    Определив шаблон, давайте «скормим» его нашей функции Regex Remove. Вот каким образом:

    1. На вкладке «Ablebits Data» в группе «Text» щелкните «Regex Tools» .
    2. В появившейся слева панели выберите исходные ячейки с текстом, введите регулярное выражение, выберите параметр «Remove (Удалить и нажмите кнопку «Remove».

    Чтобы получить результаты в виде формул, а не значений, установите флажок  Insert as a formula (Вставить как формулу).

    Чтобы удалить текст в скобках из строк в A2: A5, мы настраиваем следующие параметры, как на скриншоте ниже:

    В результате функция AblebitsRegexRemove вставляется в новый столбец рядом с вашими исходными данными.

    Функцию также можно ввести непосредственно в ячейку через стандартное диалоговое окно «Вставить функцию», где она отнесена к категории AblebitsUDFs .

    Поскольку AblebitsRegexRemove предназначена для удаления текста, ей требуются только два аргумента — исходная строка и регулярное выражение. Оба параметра могут быть определены непосредственно в формуле или предоставлены в виде ссылок на ячейки. При необходимости эту настраиваемую функцию можно использовать вместе с любыми стандартными функциями Excel.

    Например, чтобы обрезать лишние пробелы в результирующих строках, вы можете использовать функцию СЖПРОБЕЛЫ :

    =СЖПРОБЕЛЫ(RegExpReplace(A5; $A$2; «»))

    Вот как удалить текст в Excel с помощью регулярных выражений. Почти так же просто, как купить подписчиков в инстаграм. :)  Благодарю вас за чтение!

    Сумма по цвету и подсчёт по цвету в Excel В этой статье вы узнаете, как посчитать ячейки по цвету и получить сумму по цвету ячеек в Excel. Эти решения работают как для окрашенных вручную, так и с условным форматированием. Если…
    Проверка данных с помощью регулярных выражений В этом руководстве показано, как выполнять проверку данных в Excel с помощью регулярных выражений и пользовательской функции RegexMatch. Когда дело доходит до ограничения пользовательского ввода на листах Excel, проверка данных очень полезна. Хотите…
    Поиск и замена в Excel с помощью регулярных выражений В этом руководстве показано, как быстро добавить пользовательскую функцию в свои рабочие книги, чтобы вы могли использовать регулярные выражения для замены текстовых строк в Excel. Когда дело доходит до замены…
    Как извлечь строку из текста при помощи регулярных выражений В этом руководстве вы узнаете, как использовать регулярные выражения в Excel для поиска и извлечения части текста, соответствующего заданному шаблону. Microsoft Excel предоставляет ряд функций для извлечения текста из ячеек. Эти функции…
    4 способа отладки пользовательской функции Как правильно создавать пользовательские функции и где нужно размещать их код, мы подробно рассмотрели ранее в этой статье.  Чтобы решить проблемы при создании пользовательской функции, вам скорее всего придется выполнить…

    На чтение 5 мин Просмотров 11к. Опубликовано 16.05.2022

    Люди, которые только начинают работать в Excel часто встречаются с таким вопросом.

    Допустим, у нас есть такая табличка:

    Примерно так выглядит удаление всех символов после «,».

    Это можно сделать разными способами. Мы рассмотрим несколько.

    Итак, начнём!

    Содержание

    1. С помощью функции «Найти и заменить»
    2. С помощью формул
    3. С помощью функции «Заполнить»
    4. С помощью Visual Basic

    С помощью функции «Найти и заменить»

    Это, наверное, самый быстрый и удобный способ.

    Допустим, у нас та же табличка и задача:

    Пошаговая инструкция:

    • Копируем и вставляем столбик А в В;

    • Выделите столбик и щелкните «Главная»;

    • Далее — «Найти и выделить» -> «Заменить…»;

    • В первом параметре укажите «,*»;

    • Второй параметр не меняйте;

    • Щелкните «Заменить все».

    Готово! Вот результат:

    Как это работает?

    Символ * означает неопределенное количество символов.

    Так как мы используем «,*», то это значит, что программе нужно заменить запятую и все символы после неё на пустое место.

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

    С помощью формул

    Также, мы можем выполнить нашу задачу и с помощью формул.

    Допустим, у нас есть такая табличка:

    Формула принимает такой вид:

    =ЛЕВСИМВ(A2;НАЙТИ(",";A2)-1)

    Функция НАЙТИ возвращает порядковый номер запятой.

    Это простой пример, давайте рассмотрим кое-что посложнее.

    Теперь у нас такая табличка:

    Формула, для этого примера, принимает такой вид:

    =ЛЕВСИМВ(A2;НАЙТИ("!";ПОДСТАВИТЬ(A2;",";"!";2))-1)

    Итак, также как в прошлый раз — не получится. Так как НАЙТИ будет возвращать порядковый номер первой запятой, а нам надо найти его для второй.

    Мы используем небольшую хитрость, а если конкретнее, то заменяем вторую запятую на восклицательный знак, а затем с ним уже проводим операции.

    И все бы хорошо, только в этом примере в каждой строке у нас ровно 2 запятые. А что делать если их неопределенное количество? Ведь в больших данных вы не будете выверять сколько запятой в каждой строке.

    Вот пример:

    Итак, нам нужно найти порядковый номер последней запятой, а после уже проводить с ней операции.

    Для этого примера, формула принимает такой вид:

    =ЛЕВСИМВ(A2;НАЙТИ("!";ПОДСТАВИТЬ(A2;",";"!";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;",";","))))-1)

    Итак, функция ДЛСТР сначала находит количество символов в строчке с запятыми, а потом без них.

    А после вычитает из первого — второе. Таким образом мы получаем количество запятых в строчке.

    А затем мы заменяем последнюю на восклицательный знак.

    Вот так вот можно заменять все после определенного символа с помощью формул. Конечно, с небольшими хитростями.

    Плюс этого метода в том, что данные будут динамичны. То есть если что-то поменяется в изначальных данных, все поменяется и в данных после обработки.

    С помощью функции «Заполнить»

    Функция «Заполнить», это довольно давний инструмент. Он может помочь нам и в этом случае.

    Как он работает?

    Очень просто — вы просто делаете что угодно и после используете функцию. Она пытается понять логику ваших действий и продолжить её.

    Давайте рассмотрим пример.

    Допустим, у нас есть та же табличка:

    Пошаговая инструкция:

    • В первую ячейку столбика В введите то, что должно получиться после обработки;

    • В следующую ячейку, то же самое;

    • А теперь выделите столбик;

    • И щелкните на «Главная» -> «Заполнить» -> «Мгновенное заполнение»;

    Готово! Вот результат:

    Эту функцию, естественно, можно использовать не только для удаления текста после символа. Она работает там, где есть логика.

    Однако, иногда, она может ошибаться. Поэтому всегда проверяйте то, что получилось после обработки.

    С помощью Visual Basic

    И, как обычно, разберем вариант с помощью Visual Basic.

    Мы создадим свою собственную функцию и будем использовать её для обработки данных.

    Это крайне удобно, если вы делаете что-либо очень часто. Например, как в нашем случае, удаляете данные после символа.

    Код Visual Basic:

    Function LastPosition(rCell As Range, rChar As String) 
    'This function gives the last position of the specified character 
    'This code has been developed by Sumit Bansal (https://trumpexcel.com) 
    Dim rLen As Integer 
    rLen = Len(rCell)   
    
    For i = rLen To 1 Step -1   
    If Mid(rCell, i - 1, 1) = rChar Then 
    LastPosition = i - 1 
    Exit Function 
    End If   
    
    Next i   E
    
    nd Function

    Код, чтобы он работал, нужно вставить в Visual Basic -> «Insert» -> «Module».

    Давайте рассмотрим пример её использования.

    Допустим, у нас есть такая табличка. Формула принимает такой вид:

    =ЛЕВСИМВ(A2;LastPosition(A2;",")-1)

    В нашей функции, первым аргументом мы указали диапазон для поиска, а вторым символ, последнюю позицию которого нам нужно найти.

    С помощью Visual Basic все проще.

    Вот и все! Если вам нужно сделать что-то подобное 1-2 раза, то лучше всего использовать функцию «Найти и заменить…», а если вы делаете это постоянно, то используйте Visual Basic.

    Надеюсь, эта статья оказалась полезна для вас!

    Понравилась статья? Поделить с друзьями:
  • Excel удаление строк по цвету
  • Excel удалить пробел в начале строки в excel
  • Excel удалить пробел в начале строк
  • Excel удалить правые пробелы
  • Excel удаление строк горячая клавиша