Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск по нескольким совпадениям в ячейке - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Поиск по нескольким совпадениям в ячейке
velemos Дата: Среда, 03.10.2012, 15:52 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

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

1 Cooler Master Hyper 101 (RR-H101-30PK-RU) (LGA1156/775/AM3/AM2+/AM2)
2 Cooler Master Hyper 412 PWM (RR-H412-20PK-R1) (LGA2011/1366/1156/775/FM1/AM3/AM2/939)
3 Cooler Master Hyper 412 Slim (RR-H412-16PK-R1) (LGA1366/1156/775/FM1/AM3/AM2/939)
4 Cooler Master Hyper 412S (RR-H412-13FK-R1) (LGA1366/1156/775/FM1/AM3/AM2/939)
5 Cooler Master Hyper 612 PWM (RR-H612-20PK-R1) (LGA1366/1156/775/FM1/AM3/AM2/939)
6 Cooler Master Hyper 612S (RR-H612-13FK-R1) (LGA1366/1156/775/FM1/AM3/AM2/939)

я ввожу критерии поиска
в первую ячейку: master
во вторую ячейку: 412
в третью ячейку: 13FK

Всем трем требованиям соответствует только четвертая строка. Возможно что будут соответствовать другие строки
Нужно их вывести на отдельную страницу или в стороне от общей таблицы.
К сообщению приложен файл: Katalog.xlsx (9.9 Kb)
 
Ответить
СообщениеМожно ли организовать поиск в строке или в ячейке текста, который соответствует моим требованиям.
Например есть строки

1 Cooler Master Hyper 101 (RR-H101-30PK-RU) (LGA1156/775/AM3/AM2+/AM2)
2 Cooler Master Hyper 412 PWM (RR-H412-20PK-R1) (LGA2011/1366/1156/775/FM1/AM3/AM2/939)
3 Cooler Master Hyper 412 Slim (RR-H412-16PK-R1) (LGA1366/1156/775/FM1/AM3/AM2/939)
4 Cooler Master Hyper 412S (RR-H412-13FK-R1) (LGA1366/1156/775/FM1/AM3/AM2/939)
5 Cooler Master Hyper 612 PWM (RR-H612-20PK-R1) (LGA1366/1156/775/FM1/AM3/AM2/939)
6 Cooler Master Hyper 612S (RR-H612-13FK-R1) (LGA1366/1156/775/FM1/AM3/AM2/939)

я ввожу критерии поиска
в первую ячейку: master
во вторую ячейку: 412
в третью ячейку: 13FK

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

Автор - velemos
Дата добавления - 03.10.2012 в 15:52
KuklP Дата: Среда, 03.10.2012, 16:27 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
В модуль листа:
[vba]
Code
Public Sub www()
     Dim a, f, i&
     [i1].CurrentRegion.ClearContents
     On Error Resume Next
     a = [a5].CurrentRegion.Columns(2)
     f = Filter(Application.Transpose(a), [c2], , 1)
     For i = 4 To 8: f = IIf(Cells(2, i) <> "", Filter(f, Cells(2, i), , 1), f): Next
     [a5].CurrentRegion.AutoFilter 2, f, 7, , 0
     AutoFilter.Range.SpecialCells(12).Copy [i1]
     Me.AutoFilterMode = 0
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВ модуль листа:
[vba]
Code
Public Sub www()
     Dim a, f, i&
     [i1].CurrentRegion.ClearContents
     On Error Resume Next
     a = [a5].CurrentRegion.Columns(2)
     f = Filter(Application.Transpose(a), [c2], , 1)
     For i = 4 To 8: f = IIf(Cells(2, i) <> "", Filter(f, Cells(2, i), , 1), f): Next
     [a5].CurrentRegion.AutoFilter 2, f, 7, , 0
     AutoFilter.Range.SpecialCells(12).Copy [i1]
     Me.AutoFilterMode = 0
End Sub
[/vba]

Автор - KuklP
Дата добавления - 03.10.2012 в 16:27
velemos Дата: Среда, 03.10.2012, 17:28 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Спасибо за оперативный ответ.
Но. Куда бы ни кликнул мышкой на странице пишет:
"Невозможно получить свойство CurrentRegion класса Range"
и висит ексель полностью.

В модуль страницы добавил указанный код.

Может есть уже готовое решение для поиска в книге.


Сообщение отредактировал velemos - Среда, 03.10.2012, 17:30
 
Ответить
СообщениеСпасибо за оперативный ответ.
Но. Куда бы ни кликнул мышкой на странице пишет:
"Невозможно получить свойство CurrentRegion класса Range"
и висит ексель полностью.

В модуль страницы добавил указанный код.

Может есть уже готовое решение для поиска в книге.

Автор - velemos
Дата добавления - 03.10.2012 в 17:28
KuklP Дата: Среда, 03.10.2012, 18:18 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Выложите файл, где у Вас что-то не работает. У меня работает. Ткните в кнопку и смотрите, что появится на месте желтых ячеек.
К сообщению приложен файл: Katalog.xlsm (17.4 Kb)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Среда, 03.10.2012, 18:21
 
Ответить
СообщениеВыложите файл, где у Вас что-то не работает. У меня работает. Ткните в кнопку и смотрите, что появится на месте желтых ячеек.

Автор - KuklP
Дата добавления - 03.10.2012 в 18:18
velemos Дата: Среда, 03.10.2012, 18:35 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Вот спасибо. Это я не очень на "ты" с программированием. У вас все работает. я код то добавил, а вот кнопку не знаю как выводить для выполнения функции.
К сообщению приложен файл: 9942212.xlsm (14.6 Kb)
 
Ответить
СообщениеВот спасибо. Это я не очень на "ты" с программированием. У вас все работает. я код то добавил, а вот кнопку не знаю как выводить для выполнения функции.

Автор - velemos
Дата добавления - 03.10.2012 в 18:35
KuklP Дата: Среда, 03.10.2012, 18:48 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
А что в Вашем файле должно найтись по таким критериям? Там нет строк, содержащих zxcvzx.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеА что в Вашем файле должно найтись по таким критериям? Там нет строк, содержащих zxcvzx.

Автор - KuklP
Дата добавления - 03.10.2012 в 18:48
velemos Дата: Среда, 03.10.2012, 19:25 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

да это я уже в порыве гнева уже вбивал. но вас все работает. Большое спасибо.


Сообщение отредактировал velemos - Среда, 03.10.2012, 19:31
 
Ответить
Сообщениеда это я уже в порыве гнева уже вбивал. но вас все работает. Большое спасибо.

Автор - velemos
Дата добавления - 03.10.2012 в 19:25
_Boroda_ Дата: Среда, 03.10.2012, 23:13 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16715
Репутация: 6504 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Или еще можно без макросов прямо на месте выделять и потом можно фильтровать по цвету
см. вложение
К сообщению приложен файл: 9942212_1.xlsm (11.2 Kb)


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

Автор - _Boroda_
Дата добавления - 03.10.2012 в 23:13
velemos Дата: Четверг, 04.10.2012, 00:19 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Quote (_Boroda_)
Или еще можно без макросов прямо на месте выделять и потом можно фильтровать по цвету

Тоже великолепно. Кто бы мог подумать, что так можно?
Если не секрет, объясните, как Вы это сделали.
 
Ответить
Сообщение
Quote (_Boroda_)
Или еще можно без макросов прямо на месте выделять и потом можно фильтровать по цвету

Тоже великолепно. Кто бы мог подумать, что так можно?
Если не секрет, объясните, как Вы это сделали.

Автор - velemos
Дата добавления - 04.10.2012 в 00:19
Полковник МВД Дата: Четверг, 04.10.2012, 00:25 | Сообщение № 10
Группа: Гости
Данные - Фильтр - фильтр по цвету
 
Ответить
СообщениеДанные - Фильтр - фильтр по цвету

Автор - Полковник МВД
Дата добавления - 04.10.2012 в 00:25
velemos Дата: Четверг, 04.10.2012, 00:36 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Quote (Полковник МВД)
Данные - Фильтр - фильтр по цвету

Это понятно, но как сделать, чтобы выделены цветом были именно те строки, которые соответствуют условиям?
 
Ответить
Сообщение
Quote (Полковник МВД)
Данные - Фильтр - фильтр по цвету

Это понятно, но как сделать, чтобы выделены цветом были именно те строки, которые соответствуют условиям?

Автор - velemos
Дата добавления - 04.10.2012 в 00:36
Полковник МВД Дата: Четверг, 04.10.2012, 00:40 | Сообщение № 12
Группа: Гости
Главная - Условное форматирование - Создать правило - Использовать формулу
Code
=СУММ(--ЕЧИСЛО(ПОИСК($C$2:$G$2;B6)))=5
 
Ответить
СообщениеГлавная - Условное форматирование - Создать правило - Использовать формулу
Code
=СУММ(--ЕЧИСЛО(ПОИСК($C$2:$G$2;B6)))=5

Автор - Полковник МВД
Дата добавления - 04.10.2012 в 00:40
velemos Дата: Четверг, 04.10.2012, 01:04 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Quote (Полковник МВД)
Главная - Условное форматирование - Создать правило - Использовать формулу Code=СУММ(--ЕЧИСЛО(ПОИСК($C$2:$G$2;B6)))=5

Можете объяснить.
$C$2:$G$2 видимо ячейки, в которых указывается критерий поиска.
B6 - видимо ячейка, с которой начинается поиск?
но что значит значение =5?
 
Ответить
Сообщение
Quote (Полковник МВД)
Главная - Условное форматирование - Создать правило - Использовать формулу Code=СУММ(--ЕЧИСЛО(ПОИСК($C$2:$G$2;B6)))=5

Можете объяснить.
$C$2:$G$2 видимо ячейки, в которых указывается критерий поиска.
B6 - видимо ячейка, с которой начинается поиск?
но что значит значение =5?

Автор - velemos
Дата добавления - 04.10.2012 в 01:04
Полковник МВД Дата: Четверг, 04.10.2012, 01:11 | Сообщение № 14
Группа: Гости
Quote (velemos)
что значит значение =5?

5 - это количество критериев поиска (Поле1, поле2, поле3, поле4, поле5).
Если все они найдены, то суммируем их количество (оно будет равно пяти).
Если равенство - то ИСТИНА, т.е. УФ закрашивает ячейку
 
Ответить
Сообщение
Quote (velemos)
что значит значение =5?

5 - это количество критериев поиска (Поле1, поле2, поле3, поле4, поле5).
Если все они найдены, то суммируем их количество (оно будет равно пяти).
Если равенство - то ИСТИНА, т.е. УФ закрашивает ячейку

Автор - Полковник МВД
Дата добавления - 04.10.2012 в 01:11
velemos Дата: Четверг, 04.10.2012, 01:37 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

спасибо. Теперь понятно.
 
Ответить
Сообщениеспасибо. Теперь понятно.

Автор - velemos
Дата добавления - 04.10.2012 в 01:37
velemos Дата: Четверг, 04.10.2012, 14:00 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Public Sub www()
Dim a, f, i&
[i1].CurrentRegion.ClearContents Выбор прямоугольного диапазона ячеек -> очистка диапазона. Как задать другой диапазон очистки?
On Error Resume Next Указывает, что возникновение ошибки выполнения приводит к передаче управления на инструкцию, непосредственно следующую за инструкцией, при выполнении которой возникла ошибка. Это понятно.
a = [a5].CurrentRegion.Columns(2) Выбор прямоугольного диапазона ячеек (столбец 2). Если я напишу например Columns(3) - это будет третий стлбец? Как выбрать, допустим, 2 столбца?
f = Filter(Application.Transpose(a), [c2], , 1) Создает массив начиная с ячейки С2?
For i = 4 To 8: f = IIf(Cells(2, i) <> "", Filter(f, Cells(2, i), , 1), f): Next
[a5].CurrentRegion.AutoFilter 2, f, 7, , 0
AutoFilter.Range.SpecialCells(12).Copy [i1]
Me.AutoFilterMode = 0
End Sub

В общем можно ли искать на других страницах? Как то так наверное.
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
 
Ответить
СообщениеPublic Sub www()
Dim a, f, i&
[i1].CurrentRegion.ClearContents Выбор прямоугольного диапазона ячеек -> очистка диапазона. Как задать другой диапазон очистки?
On Error Resume Next Указывает, что возникновение ошибки выполнения приводит к передаче управления на инструкцию, непосредственно следующую за инструкцией, при выполнении которой возникла ошибка. Это понятно.
a = [a5].CurrentRegion.Columns(2) Выбор прямоугольного диапазона ячеек (столбец 2). Если я напишу например Columns(3) - это будет третий стлбец? Как выбрать, допустим, 2 столбца?
f = Filter(Application.Transpose(a), [c2], , 1) Создает массив начиная с ячейки С2?
For i = 4 To 8: f = IIf(Cells(2, i) <> "", Filter(f, Cells(2, i), , 1), f): Next
[a5].CurrentRegion.AutoFilter 2, f, 7, , 0
AutoFilter.Range.SpecialCells(12).Copy [i1]
Me.AutoFilterMode = 0
End Sub

В общем можно ли искать на других страницах? Как то так наверное.
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")

Автор - velemos
Дата добавления - 04.10.2012 в 14:00
KuklP Дата: Четверг, 04.10.2012, 14:13 | Сообщение № 17
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
CurrentRegion это и правда прямоугольный диапазон ячеек ограниченный пустыми строками-столбцами. Чтоб задать другой, в конструкции [i1].CurrentRegion, вместо [i1] достаточно указать любую ячейку в его пределах. Чтоб искать на других страницах, нужно знать - на каких. Если на всех - один подход, если на некоторых - другой. Выложи Вы сразу пример приближенный к реальности, да с описанием, давно бы забыли тему.
Quote
Как выбрать, допустим, 2 столбца?
Выбрать-то можно. Но функция Filter работает только с одномерным массивом.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Четверг, 04.10.2012, 14:18
 
Ответить
СообщениеCurrentRegion это и правда прямоугольный диапазон ячеек ограниченный пустыми строками-столбцами. Чтоб задать другой, в конструкции [i1].CurrentRegion, вместо [i1] достаточно указать любую ячейку в его пределах. Чтоб искать на других страницах, нужно знать - на каких. Если на всех - один подход, если на некоторых - другой. Выложи Вы сразу пример приближенный к реальности, да с описанием, давно бы забыли тему.
Quote
Как выбрать, допустим, 2 столбца?
Выбрать-то можно. Но функция Filter работает только с одномерным массивом.

Автор - KuklP
Дата добавления - 04.10.2012 в 14:13
velemos Дата: Четверг, 04.10.2012, 15:16 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Да я как раз таки от возможностей Excel и отталкиваюсь. И какой то пример можно сделать исходя из того, что можно сделать. А спрашиваю я, потому что хочу понять как это работает. Вообще мне приходит 5 файлов. изначально я думал копировать все прайсы на одну сраницу, и там уже искать. Этот вопрос уже решили, только я хотел теперь поменять местами область поиска и облать вывода результата. Потом, когда пытался разобраться в этом коде, то понял что можно искать и на других страницах. Это уже лучше, то есть каждый прайс на отдельной странице, а вывод на первую. А самый идеальный вариант - поиск по нескольким файлам отдельным (достаточно по одному столбцу, допустим второму) с выводом на страницу с макросом всех найденых строк.
 
Ответить
СообщениеДа я как раз таки от возможностей Excel и отталкиваюсь. И какой то пример можно сделать исходя из того, что можно сделать. А спрашиваю я, потому что хочу понять как это работает. Вообще мне приходит 5 файлов. изначально я думал копировать все прайсы на одну сраницу, и там уже искать. Этот вопрос уже решили, только я хотел теперь поменять местами область поиска и облать вывода результата. Потом, когда пытался разобраться в этом коде, то понял что можно искать и на других страницах. Это уже лучше, то есть каждый прайс на отдельной странице, а вывод на первую. А самый идеальный вариант - поиск по нескольким файлам отдельным (достаточно по одному столбцу, допустим второму) с выводом на страницу с макросом всех найденых строк.

Автор - velemos
Дата добавления - 04.10.2012 в 15:16
KuklP Дата: Четверг, 04.10.2012, 15:30 | Сообщение № 19
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Я же Вам объяснил - можно искать и на разных страницах и в (дополню) разных файлах. Но если Вы ожидаете универсальный макрос, то напрасно. Нет таких. Макросы, как правило, пишутся под конкретную задачу, к-рую необходимо выполнять многократно. Или очень сложную задачу, к-рую надо выполнить один раз, но вручную это очень накладно и велика вероятность ошибки оператора:-)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЯ же Вам объяснил - можно искать и на разных страницах и в (дополню) разных файлах. Но если Вы ожидаете универсальный макрос, то напрасно. Нет таких. Макросы, как правило, пишутся под конкретную задачу, к-рую необходимо выполнять многократно. Или очень сложную задачу, к-рую надо выполнить один раз, но вручную это очень накладно и велика вероятность ошибки оператора:-)

Автор - KuklP
Дата добавления - 04.10.2012 в 15:30
velemos Дата: Четверг, 04.10.2012, 16:06 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Спасибо большое. пока хватит и этого макроса, который Вы мне дали. Буду копировать прайсы. На один лист. единственное, хочу спросить как поменять местами область поиска и область вывода найденного? Если не сложно.
 
Ответить
СообщениеСпасибо большое. пока хватит и этого макроса, который Вы мне дали. Буду копировать прайсы. На один лист. единственное, хочу спросить как поменять местами область поиска и область вывода найденного? Если не сложно.

Автор - velemos
Дата добавления - 04.10.2012 в 16:06
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!