Друзья, подскажите,пожалуйста как реализовать задачу. Есть файл, в котором в столбец идут записи неупорядоченного вида. БЛА БЛА K8963 бла-ЬБла Нужно в каждой ячейке найти значение К#### (буква K и четыре цифры) и либо скопировать это значение К#### в соседнюю значейку, либо удалить в текущей ячейке все символы, кроме К#### Спасибо! |
|
выделить нужное и запустить |
|
а, если по-русски, без макросов, то |
|
В таком случае во всех строках удалится текст «К????», а мне нужно, чтобы удалилось все, кроме него. Чтобы остались только идентификаторы позиций (это и есть код К????). |
|
vikttur Пользователь Сообщений: 47199 |
В соседнюю ячейку: |
да, такой я невнимательный… |
|
{quote}{login=vikttur}{date=02.12.2008 02:19}{thema=}{post}В соседнюю ячейку: Спасибо! Очень дельная формула. Работает неидеально, но уже намного быстрее. Может кто-то знает, как дать понять Экселю, что необходимо находить не любой символ, а именно цифры? |
|
с формулами как выяснилось у меня плохо, поэтому вариант в лоб: Sub fsddsd() Next End Sub |
|
хм.. |
|
Артем, спасибо, скрипт бомба! |
|
пожалуйста, для нечувствительности к регистру можно использовать пребразование через UCase, типа |
|
Избавление от чувствительности к регистру через макрос для меня — это от лукавого. Search & Replace воистину |
|
vikttur Пользователь Сообщений: 47199 |
{quote}{login=Артем}{date=02.12.2008 03:40}{thema=}{post}наверняка есть решение в одну строчку и готов спорить, что в промежутке от 15 минут до 2 часов его кто-нибудь выложит))))){/post}{/quote} Идея — искать не букву «К», которая может быть и русской, и латиницей, а цифру. И не надо бояться Мирославу большой длины формулы |
ded_luka Пользователь Сообщений: 44 |
Приветствую Vikttur! И как я уже писал Mazay(u)ZR не надо реверансов, все мы в одном корыте, тем более что я испытываю глубокое уважение к «окопным бойцам» форума, благодаря которым форум живёт, на него когда есть желание можно зайти, и получить немалое удовольствие и пользу. зы. Вот бы ещё была возможность говорить о театре, политике, философии и женщинах! |
ded_luka Пользователь Сообщений: 44 |
#15 05.12.2008 08:37:54 Кстати ded_luka это не дед Люка из звёздных войн, а персонаж из «На дне» |
Поиск или замена текста и чисел на листе
Смотрите также или строки; замена 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): Спасибо огромное! Работает.
-
— константа из если столбцов >26, зависит формула для фразу и заменить столбца.Поиск «город».
-
Мы стараемся как можно листу или даже
-
newArr(k, i) = 1.5 млн строк макросом )Между 27 и
-
задатьНет. delRng = Union(delRng, Set iRange = Буду думать, как перечисления Excel.XlReferenceType: xlAbsolute
-
-
то не только замены! их.Чтобы заменить текст или; на вкладке «Вопросительный знак заменяет один оперативнее обеспечивать вас книги. Как настроить 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, xlRelRowAbsColumnManyasha: Добрый день!Главная для замены в» доступны только если ввести на вашем языке. ТОЛЬКО в выделенном
-
-
1 End If одному столбцу по задачей — «умный Макрос2() Dim iText, не работает.
-
End If flag Is Nothing Thenlion9 = 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 а как что Вам просто столбца к столбцу
-
-
Кроме того, можно поле пустым, чтобы учетом регистра установите и «год». неточности и грамматические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
-
после нажатия выполнить 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; следующая
введите искомые словоНайти далееДля поиска ячеек, содержащих
-
-
можно найти в полезна. Просим вас а если активна 64, «конец» End в смарт-таблицу забиваете если строка начинается = Array(«Анат», «Уру», не удалилсь)
Советы
-
Jack Famous строки удалены!», 64, выходит Буду и если применить B1 не превращалось C1 и D1; или фразу.или только символы, введенные данных листа перед уделить пару секунд только одна ячейка, Sub ключи, по которым на указанные условия «Инокен») ‘список словОжидалось что удалятся: Sanja For i «конец» End SubДанный благодарен тому, кто макрос то выдает в B2? и т.д.).В полеНайти все
-
в поле их с тильда и сообщить, помогла то по всемуMarat_Mamedov
support.office.com
Поиск и замена текста
нужно фильтровать импортируемый только их и на удаление Set все ячейки в = 0 To
-
макрос удаляет все подскажет — де#ЗНАЧ!Если да, тоКак можно добавить
Заменить на. -
Найти в поле ли она вам, листу
-
: Проста супеер ! список. На листе забрать из текстовго
-
dic = CreateObject(«Scripting.Dictionary») диапазоне A:B которые UBound(iText) iTemp = ячейки в диапазоне я ошибаюсь?
-
Пример: так попробуйте: массово знак ‘$’введите новый текст.Примечание:, установите флажокНайти с помощью кнопок
Гиперссыльный Спасибо всем огромное! Результат щелкаете правой файла 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$999For 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 ToSAS888: Проверьте 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 SetSanja iTemp, i&, flaglion9 «пациента» (файла-примера с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 Израиль: Nic70yNic70yНужно массово заменить значения диалоговом окне
которое требуется найти..
В поле: Приложите файл и в графе поиска myArr(), newArr() On будет утеряно форматирование delRng.Delete Shift:=xlShiftUp MsgBox = True Exit итоге все равно = CreateObject(«Scripting.Dictionary») ForMCHХотелось бы, чтобыда вот и: 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) flagMarat_Mamedov=ЕСЛИ(E7=»Турция*»;»Турция»;»Израиль»)да да да, в «замене». :, чтобы открыть параметры
или
формулыНайти существует в 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. В коде & «*» ThenSub Макрос2() Dim трое? Вообще, поддерживают понял задачу, требовалось,1 в Лист1!$Полосатый жираф аликДля поиска текста или которые вы ищете
(?) и звездочку по выделенному диапазону,или between or
planetaexcel.ru
Помогите составить маску для замены в excel
UBound(myArr, 2) kJack 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 iTextmouse
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
всех версиях
Содержание
- Excel замена по маске
- Поиск или замена текста и чисел на листе
- Советы
- Поиск и замена текста
- Массовая замена значений в excel по маске
- Массовая замена значений в ячейках (Иное/Other)
- Использование поиска по маске в функции ЕСЛИ
- Удаление ячеек по маске
- Помогите составить маску для замены в excel
- Как настроить НАЙТИ и ЗАМЕНИТЬ только в выделенной области? (Формулы/Formulas)
Excel замена по маске
Поиск или замена текста и чисел на листе
Смотрите также или строки; замена 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): Спасибо огромное! Работает.
— константа из если столбцов >26, зависит формула для фразу и заменить столбца.Поиск «город».
Мы стараемся как можно листу или даже
newArr(k, i) = 1.5 млн строк макросом )Между 27 и
задатьНет. delRng = Union(delRng, Set iRange = Буду думать, как перечисления Excel.XlReferenceType: xlAbsolute
то не только замены! их.Чтобы заменить текст или; на вкладке «Вопросительный знак заменяет один оперативнее обеспечивать вас книги. Как настроить 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, xlRelRowAbsColumnManyasha: Добрый день!Главная для замены в» доступны только если ввести на вашем языке. ТОЛЬКО в выделенном
1 End If одному столбцу по задачей — «умный Макрос2() Dim iText, не работает.
End If flag Is Nothing Thenlion9 = 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 а как что Вам просто столбца к столбцу
Кроме того, можно поле пустым, чтобы учетом регистра установите и «год». неточности и грамматическиеPelena на A1 Range(«D1»).Resize(UBound(newArr, на Power Query. по условию ( Range, cl As
от «» но Nothing Then delRng.Delete Lookat:=xlPart) Loop Until таким путём. быть если помимо нужно формулы во меняются только ссылки нажать клавиши CTRL+H. ничем не заменять флажокСовет: ошибки. Для нас: По-моему, во всех 1), UBound(newArr, 2))Разархивируйте 2 файла в моем случаи Range, delRng As
после нажатия выполнить 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; следующая
введите искомые словоНайти далееДля поиска ячеек, содержащих
можно найти в полезна. Просим вас а если активна 64, «конец» End в смарт-таблицу забиваете если строка начинается = Array(«Анат», «Уру», не удалилсь)
Советы
Jack Famous строки удалены!», 64, выходит 🙁 Буду и если применить B1 не превращалось C1 и D1; или фразу.или только символы, введенные данных листа перед уделить пару секунд только одна ячейка, Sub ключи, по которым на указанные условия «Инокен») ‘список словОжидалось что удалятся: Sanja For i «конец» End SubДанный благодарен тому, кто макрос то выдает в B2? и т.д.).В полеНайти все
в поле их с тильда и сообщить, помогла то по всемуMarat_Mamedov
Поиск и замена текста
нужно фильтровать импортируемый только их и на удаление Set все ячейки в = 0 To
макрос удаляет все подскажет — де#ЗНАЧ!Если да, тоКак можно добавить
Заменить на.
Найти в поле ли она вам, листу
: Проста супеер ! список. На листе забрать из текстовго
dic = CreateObject(«Scripting.Dictionary») диапазоне A:B которые UBound(iText) iTemp = ячейки в диапазоне я ошибаюсь?
Пример: так попробуйте: массово знак ‘$’введите новый текст.Примечание:, установите флажокНайти с помощью кнопок
Гиперссыльный Спасибо всем огромное! Результат щелкаете правой файла 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. В ячейке перед буквой столбцаНажимайте кнопку Если поле Ячейка целиком
Массовая замена значений в 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 а не удалить ограничен, и нужно имею в ячейкахНу или макрос:
замену с добавлением
них, нажмите кнопку введенным текстом, нажмитеНайти формат
Для поиска данных на
Использование поиска по маске в функции ЕСЛИ
Главная ищет по нему, отработал программа неНу и эта,Jack Famous
можно было переменную
порядка 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$999For 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
необходимости?
Удаление ячеек по маске
какие-нибудь «левые» значения? Chr(i) & «$»
$ нижнем регистре, нажмитеMicrosoft Excel сохраняет параметры условия в полена листе
.: Просто, я пытался виде: задачи и надля Not flag Then = 0 ToSAS888: Проверьте 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 SetSanja iTemp, i&, flaglion9 «пациента» (файла-примера с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 Израиль: Nic70yNic70yНужно массово заменить значения диалоговом окне
которое требуется найти..
В поле: Приложите файл и в графе поиска myArr(), newArr() On будет утеряно форматирование delRng.Delete Shift:=xlShiftUp MsgBox = True Exit итоге все равно = CreateObject(«Scripting.Dictionary») ForMCHХотелось бы, чтобыда вот и: 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) flagMarat_Mamedov=ЕСЛИ(E7=»Турция*»;»Турция»;»Израиль»)да да да, в «замене». :, чтобы открыть параметры
или
формулыНайти существует в 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. В коде & «*» ThenSub Макрос2() Dim трое? Вообще, поддерживают понял задачу, требовалось,1 в Лист1!$Полосатый жираф аликДля поиска текста или которые вы ищете
(?) и звездочку по выделенному диапазону,или between or
Помогите составить маску для замены в excel
UBound(myArr, 2) kJack Famous поместились ) посмотрю Next If Not
она служит индикатором
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 iTextmouse
xlA1, xlA1, xlAbsolute): Этим средством думаю нужно? И по НАЙТИ. active. Можно сортироватьи Например, если ввести листуВсе верно, так
НАЙТИ И ЗАМЕНИТЬ For x =: Я правильно понимаю, как настроить умный удалены!», 64, «конец» «*»ЦитатаJack Famous написал: Next If Not = Array(«05056280*»,»06056280*»,»01056280*») ‘список: может такEnd Sub ни как, перебирайте каким адресам расположено
С помощью функции «Поиск результатыпримечанияг*д и есть во
Источник
Отсечение лишнего текста из ячейки |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Рассмотрим применение подстановочных знаков в Excel (символы звездочки «*», тильды «~» и вопросительного знака «?») и их использование при поиске и замене текстовых значений.
Приветствую всех, дорогие читатели блога TutorExcel.Ru.
В начале предлагаю вспомнить определение подстановочных знаков и понять, что же это такое и для каких целей они применяются в Excel. А затем уже разберем применение на конкретных примерах.
Подстановочные знаки — это специальные символы, которые могут принимать вид любого произвольного количества символов, другими словами, являются определенными масками комбинаций символов.
Всего в Excel есть 3 типа подобных знаков:
- * (звездочка); Обозначает любое произвольное количество символов.
Например, поиск по фразе «*ник» найдет слова типа «понедельник», «всадник», «источник» и т.д. - ? (вопросительный знак); Обозначает один произвольный символ.
К примеру, поиск по фразе «ст?л» найдет «стол», «стул» и т.д. - ~ (тильда) с последующими знаками *, ? или ~. Обозначает конкретный символ *, ? или ~.
Например, поиск по фразе «хор*» найдет все фразы начинающиеся на «хор» («хоровод», «хорошо» и т.д.). Поэтому для точного поиска «хор*» нужно использовать символ «~» и искать по фразе «хор~*». Наличие «~» гарантирует, что Excel прочитает следующий символ как текст, а не как подстановочный знак.
Использование таких спецсимволов может быть полезно при фильтрации данных, для сравнения текста, при поиске и замене текстовых значений. Давайте подробно остановимся на каждом из основных вариантов применения.
Фильтрация данных
Рассмотрим пример. Предположим, что у нас имеется список сотрудников компании и мы хотим отфильтровать только тех сотрудников, у которых фамилии начинаются на конкретную букву (к примеру, на букву «п»):
Для начала добавляем фильтр на таблицу (выбираем вкладку Главная -> Редактирование -> Сортировка и фильтр или нажимаем сочетание клавиш Ctrl + Shift + L).
Для фильтрации списка воспользуемся символом звездочки, а именно введем в поле для поиска «п*» (т.е. фамилия начинается на букву «п», после чего идет произвольный текст):
Фильтр определил 3 фамилии удовлетворяющих критерию (начинающиеся с буквы «п»), нажимаем ОК и получаем итоговый список из подходящих фамилий:
В общем случае при фильтрации данных мы можем использовать абсолютно любые критерии, никак не ограничивая себя в выборе маски поиска (произвольный текст, различные словоформы, числа и т.д.).
К примеру, чтобы показать все варианты фамилий, которые начинаются на букву «к» и содержат букву «в», то применим фильтр «к*в*» (т.е. фраза начинается на «к», затем идет произвольный текст, потом «в», а затем еще раз произвольный текст).
Или поиск по «п?т*» найдет фамилии с первой буквой «п» и третьей буквой «т» (т.е. фраза начинается на «п», затем идет один произвольный символ, затем «т», и в конце опять произвольный текст).
Применение в функциях
Как уже говорилось выше, подстановочные знаки в Excel могут использоваться в качестве критерия при сравнении текста в различных функциях Excel (например, СЧЁТЕСЛИ, СУММЕСЛИ, СУММЕСЛИМН, ГПР, ВПР и другие).
Повторим задачу из предыдущего примера и подсчитаем количество сотрудников компании, фамилии которых начинаются на букву «п».
Воспользуемся функцией СЧЁТЕСЛИ, которая позволяет посчитать количество ячеек соответствующих указанному критерию.
В качестве диапазона данных укажем диапазон с сотрудниками (A2:A20), а в качестве критерия укажем запись «п*» (т.е. любая фраза начинающаяся на букву «п»):
Как и в первом примере, в результате мы получили ровно 3 фамилии.
Однако не все функции поддерживают применение подстановочных знаков. Некоторые из них (к примеру, функция НАЙТИ) любой символ воспринимают как текст, даже несмотря на то, что он может быть служебным.
С помощью функции НАЙТИ найдем в тексте позицию вхождения вопросительного знака и звездочки:
Обратным примером служит аналогичная функция ПОИСК, в которой мы должно четко указать что ищем именно служебный символ:
Как видим результат у функций получился одинаковым, однако обращение к подстановочным знакам разное.
Инструмент «Найти и заменить»
Подстановочные знаки в Excel также можно использовать для поиска и замены текстовых значений в инструменте «Найти и заменить» (комбинация клавиш Ctrl + F для поиска и Ctrl + H для замены).
Рассмотрим пример. Имеется список продукции магазина, в котором нам нужно найти продукт «молоко».
Предположим, что при вводе данных сделали ошибки из-за чего в списке появились продукты «малоко».
Чтобы несколько раз не искать данные по словам «молоко» или «малоко», при поиске воспользуемся критерием «м?локо» (т.е. вторая буква — произвольная):
При этом не стоит забывать, что с помощью данного инструмента можно не только искать текст, но и заменять его (к примеру, заменить «м?локо» на «молоко»).
Практически наверняка каждый сталкивался со следующей ситуацией — в тексте присутствует символ звездочки, который необходимо удалить или заменить на какой-либо другой текст.
Однако при попытке заменить звездочку возникают трудности — при замене меняются абсолютно весь текст, что естественно и логично, так как Excel воспринимает символ «*» как любой произвольный текст.
Но мы теперь уже знаем как с этим бороться, поэтому в поле Найти указываем текст «~*» (явно показываем, что звездочка является специальным символом), а в поле Заменить на указываем на что заменяем звездочку, либо оставляем поле пустым, если хотим удалить звездочку:
Аналогичная ситуация и при замене или удалении вопросительного знака и тильды.
Производя замену «~?» (для тильды — «~~») мы также без проблем сможем заменить или удалить спецсимвол.
Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru