Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - [решено] Excel Выбрать записи по заданному столбцу с другого листа

Ответить
Настройки темы
2007 - [решено] Excel Выбрать записи по заданному столбцу с другого листа

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


Сообщения: 70
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xls пример.xls
(23.0 Kb, 4 просмотров)
Есть таблица с множеством записей.
Примерную структуру приложил в примере.
На первом листе Данные Исходный набор данных. Меня интересует Столбец Имя. Данные в столбце не уникальны, повторяются.
Мне нужно по условиям отбора на втором листе отфильтровать в данных те строки которые содержат условия отбора.
В данном файле всего два условия отбора, но их может быть пару десятков.
На третьем листе Пример что хочу получить.

Пробовал через Данные - Фильтр -Дополнительно
Что то не получается.

Отправлено: 09:04, 21-02-2018

 

Динохромный


Contributor


Сообщения: 690
Благодарности: 317

Профиль | Отправить PM | Цитировать


surgutfred, на форуме обсуждалась похожая тема с удобным решением 2010 - [решено] Фильтр таблицы по стороннему столбцу с данными Excel пост 7.
Посмотрите, если решение вас не устроит или появятся вопросы - отпишитесь.

Отправлено: 09:46, 21-02-2018 | #2



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

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


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


Сообщения: 70
Благодарности: 1

Профиль | Отправить PM | Цитировать


a_axe, это удобно когда у тебя 2-3 условия для фильтра, а у меня список условий для отбора до 100 может быть, данный инструмент не удобен

Отправлено: 10:17, 21-02-2018 | #3


Динохромный


Contributor


Сообщения: 690
Благодарности: 317

Профиль | Отправить PM | Цитировать


Цитата surgutfred:
у меня список условий для отбора до 100 может быть, данный инструмент не удобен »
surgutfred, тут важно пояснить, какой функционал нужно адаптировать, чтобы решения стало удобным. Если вопрос только в количестве фильтров - возьмите ваш файл пример, нажмите сочетание alt+f11 для открытия VBA редактора, в "дереве проекта" найдите ярлычок Лист2(Условия), дважды щелкните по нему, чтобы в основном окне открылось его содержимое (белый лист). Скопируйте туда код ниже (чуть-чуть адаптированная версия кода из указанной темы). Вбейте в список листа "Условия" новое имя (пустых строчек быть не должно, имена должны идти подряд). Листы должны быть названы в соответствии с вашим примером.

Код: Выделить весь код
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2").Resize(Range("A2").CurrentRegion.Columns.Item(1).Rows.Count-1)) Is Nothing Then
        On Error Resume Next
        Sheets.Item("Данные").ShowAllData
        Sheets.Item("Данные").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion
    End If
End Sub

Последний раз редактировалось a_axe, 21-02-2018 в 16:10. Причина: Опечатка

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:37, 21-02-2018 | #4


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


Сообщения: 70
Благодарности: 1

Профиль | Отправить PM | Цитировать


a_axe, Спасибо, то что нужно, только вместо Sheets.Item("Данные"). сделал Sheets(1).Range("A1") т.к. имя листа постоянно по дате меняется.
Единственное неудобство, когда очищаешь условие отбора, он задумывается в попытке обработать, курсор крутится. Esc спасает, но может есть вариант не обрабатывать событие, если нет введенных условий?

Отправлено: 14:02, 21-02-2018 | #5


Динохромный


Contributor


Сообщения: 690
Благодарности: 317

Профиль | Отправить PM | Цитировать


Цитата surgutfred:
вариант не обрабатывать событие, если нет введенных условий? »
Не обрабатывать пустой диапазон можно, но тогда не ясно, по какому событию на листе Данные будет убран фильтр.
В коде ниже фильтр убирается, если в А2 вбить значение "Все", пробуйте.
Код: Выделить весь код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim shtObj As Worksheet
    Set shtObj = Sheets.Item(1)
    If Not Intersect(Target, Range("A2").Resize(Range("A2").CurrentRegion.Columns.Item(1).Rows.Count - 1)) Is Nothing And Range("A1").CurrentRegion.Rows.Count > 1 Then
        On Error Resume Next
        shtObj.ShowAllData
        shtObj.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion
    End If
    If LCase(Range("A2").Value) = "все" Then shtObj.ShowAllData
    Set shtObj = Nothing
End Sub

-------
[Форум Word и Excel] - [Как запустить Word, Excel и Outlook в безопасном режиме?] - [Как удалить шаблон Word Normal.dotm?]


Отправлено: 15:05, 21-02-2018 | #6


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


Сообщения: 70
Благодарности: 1

Профиль | Отправить PM | Цитировать


a_axe, спасибо, тогда проще ESC жать

Отправлено: 15:08, 21-02-2018 | #7



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - [решено] Excel Выбрать записи по заданному столбцу с другого листа

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2010 - [решено] Фильтр таблицы по стороннему столбцу с данными Excel Amshferm Microsoft Office (Word, Excel, Outlook и т.д.) 7 24-06-2016 15:39
2013 - excel Скопировать таблицы в начало другого листа Alexander_88 Microsoft Office (Word, Excel, Outlook и т.д.) 2 22-10-2015 11:25
2013 - Ссылка на ячейки другого листа, с возможностью изменения порядка ячеек btescm Microsoft Office (Word, Excel, Outlook и т.д.) 5 04-09-2014 23:16
Разное - Сортировка по столбцу в Excel 2007-10 alef2474 Microsoft Office (Word, Excel, Outlook и т.д.) 5 20-02-2014 14:54
VBA - [решено] Разбор листа Excel по строкам в отдельные файлы Debugger Программирование и базы данных 3 14-03-2012 15:46




 
Переход