Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Многокритериальный фильтр / 25 сообщений из 30, страница 1 из 2
17.12.2009, 14:33
    #36371593
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Кто-нибудь работал в Экселе больше, чем с 2-я критериями фильтра в одном столбце???
Типа Selection.AutoFilter Field:=2, Criteria1:="=*17*", Operator:=xlAnd, Criteria2:="=*46*", Operator:=xlOr, Criteria3:="=*28*" ...
Скинте код,плз
Спасибо
...
Рейтинг: 0 / 0
18.12.2009, 09:17
    #36372951
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Stepler, в автофильтре больше двух нельзя. можно сделать красивый расширенный фильтр и в него много условий прикрутить.

тут висит мое творчество. немного не то, но при известной доработке и вам пригодиться может
...
Рейтинг: 0 / 0
18.12.2009, 10:26
    #36373090
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
PlanBStepler, в автофильтре больше двух нельзя. можно сделать красивый расширенный фильтр и в него много условий прикрутить.

тут висит мое творчество. немного не то, но при известной доработке и вам пригодиться может
Да, идея очень интересная. Я тоже попробывал через расширенный, но пока ничего не вышло. У меня задача намного сложнее комбинаторно: работа фильтра по трем листам Экселя, но расширенный можно применить тока на первом листе, а значения фильтрации (в разных логических вариантах типа и/или/начинается и т.д.) на двух других. Да исчо и группировка (до 5-и уровней с показом найденного по фильтру нижнего уровня и всех вышестоящих уровней) чертова усложняет все дело.
Давно бы по-простому ручками выбрал бы, да количество строк = 27 777 и к тожу придется применять такой универсальный фильтр (если его сделаю) раз в месяц.
Так что, спасибо, если енту задачу добью - обязательно выложу ее на FAQ.
...
Рейтинг: 0 / 0
18.12.2009, 10:45
    #36373151
.Михаил.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
SteplerКто-нибудь работал в Экселе больше, чем с 2-я критериями фильтра в одном столбце???
Типа Selection.AutoFilter Field:=2, Criteria1:="=*17*", Operator:=xlAnd, Criteria2:="=*46*", Operator:=xlOr, Criteria3:="=*28*" ...
Скинте код,плз
Спасибо
Сделайте свой автофильтр: создайте форму, где будете задавать критерии, потом скрывайте строки, которые по критерию "пролетают". Может, конечно, медленно работать, но "нет предела совершенству"...
А насчет автофильта: это некий объект ("экземпляр класса"), у которого максимум 2 критерия, тут ничего не поделаешь.
...
Рейтинг: 0 / 0
18.12.2009, 20:01
    #36374819
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Stepler, а киньте рукотворный пример. даже интересно стало. тока кол-во строк на 1000 поделите =)))
...
Рейтинг: 0 / 0
22.12.2009, 09:23
    #36378957
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
PlanB,

Стоило отъехать в командировку.... и тут же с удивлением обнаружил интерес к своей задаче...

Поясню немного историю:
Прошла инвентаризация (пересчет материалов) одного из складов. Причем инвентаризацию проводили без остановки работы склада - фиксировали наличие пересчитанного в этот день товара на конец дня. В результате имеем:
1) по данным пересчета данные (номенклатуру) как найденные в ведомости остатков, так и не найденные на каждый день пересчета.
2) за время проведения инвентаризации "доблестные" бухопера изменили (никто не знает скока) наименований номенклатуры. Поэтому имеем для работы исчо один архивный файл со старой номенклатурой.

Задача:
найти выявленный в инвентаризацию товар (номенклатуру) в номенклатуре основной ведомости остатков, если его там нет - то найти его в новой номенклатуре и ввести в основную ведомость остатков, если его и здесь нет - то найти его в старой номенклатуре и ввести в основную ведомость остатков. Исчо могет быть вариант, что наименование номенклатуры не совпадает с написанном названием на товаре, т.е. наименование номенклатуры более высокого уровня (папки) = названию товара.


Понимаю, что объяснил усе коряво - если что постараюсь в процессе мнений (если он будет :) ) объяснить подробнее.

Приклепляю "выжимку" с наработанным на данный момент ...
...
Рейтинг: 0 / 0
22.12.2009, 09:56
    #36379018
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Да уж, предельно ясная задача... :)
Я могу подсобить универсальным макросом http://hugo.nxt.ru/CompareFiles.Find.Rus.v090.rar
Внутри версия уже поновее.
Скопировать или найти данные между двумя листами (и разных файлов тоже) поможет. В несколько заходов можно может быть и всю задачу решить, там есть неполный поиск (по части названия).
...
Рейтинг: 0 / 0
22.12.2009, 10:00
    #36379028
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
PlanB,

Извините, забыл прикрепить...
"обрезал" как тока можно
...
Рейтинг: 0 / 0
22.12.2009, 10:08
    #36379043
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Hugo121,

Посмотрел, но для меня в Вашем варианте не совсем удобно поиск по первому столбцу - предварительно много преобразовывать.
Но как направление решения интересно, спасибо. Может быть использую.
...
Рейтинг: 0 / 0
22.12.2009, 10:12
    #36379054
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Stepler,

Черт, проблемма с крепежом?
...
Рейтинг: 0 / 0
22.12.2009, 10:51
    #36379171
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Поиск можно вести по любому столбцу, поставь его первым в списке, а следующими другие для сравнения данных (например M, A, B, C - ищет в М, затем при совпадении сравнивает данные из A,B,C)
...
Рейтинг: 0 / 0
22.12.2009, 12:22
    #36379490
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Stepler, попробуй с такими настройками запустить - много повторов покажет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Файл - получатель:		C:\Инв4.xls
Файл - источник:		C:\Инв4.xls
Столбцы сравнения в файле  1 :		b
Столбцы сравнения в файле  2 :		b
Лист - получатель файла  1  (№):		 3 
Лист - источник файла  2  (№):		 2 
Столбцы - получатели файла  1 :		
Столбцы - источники файла  2 :		
Столбец для пометок в файле  1 		f
Столбец для пометок в файле  1 		f
Текст пометки		Есть!
...
Рейтинг: 0 / 0
22.12.2009, 13:07
    #36379664
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Hugo121,

спасибо, но что-то у мени по адресу файла пишет, что файл не найден...
...
Рейтинг: 0 / 0
22.12.2009, 13:13
    #36379699
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Сотри адреса из G6, G7 и запусти макрос - он предложит 2 раза выбрать файлы в диалоге, укажи оба раза один и тотже файл. Все рыжие поля запрашиваются в диалоге, если не заполнены, т.к. это обязательные для работы поля.
...
Рейтинг: 0 / 0
22.12.2009, 13:45
    #36379835
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Hugo121,

Протестировал, но меня больше интересует вариант НАЙТИ то,что на бумаге в первом листе, если там нет, то во втором листе, если там нет, то в 3 листе и внести данные в первый лист...
А так простое сравнение данных - лучше использовать свои написанные наработки, чем адаптировать и изменять.
Спасибо, все равно, данный запрос для меня интересен мобильностью изменения первоначальных данных через ячейки. Я подобное (намерное по глупости) применил через форму, где менял вводимые данные из списка возможных, что приводило к замедлению процесса поиска...
...
Рейтинг: 0 / 0
22.12.2009, 13:58
    #36379877
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Hugo121,

Попробывал запустить на полный список номенклатуры, чтобы понять изменение наименования старой и новой. Скорость выполнения ~1 строка/сек. Посчитал, будет вычислять около 8 часов!!! :)
...
Рейтинг: 0 / 0
22.12.2009, 14:05
    #36379891
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Да, есть тормоза, если 10тыс. на 10тыс. сверять... У нас списки поменьше, нам подходит.
...
Рейтинг: 0 / 0
22.12.2009, 14:07
    #36379900
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Hugo121,

Я ужо писал : 27 777 строк....
Насчет тормозов - предупреждать же нада!!! :)
...
Рейтинг: 0 / 0
22.12.2009, 14:12
    #36379920
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Хотя я сейчас натравил на файлы где только номера 1-30000, так уже 1500 строк просчитал, пока пишу...
...
Рейтинг: 0 / 0
22.12.2009, 14:13
    #36379921
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Так!!!
1С выполняет прогу уже 3,5 часа, Экселю осталось ~7,5 час ....
Пошел спать!!!
...
Рейтинг: 0 / 0
22.12.2009, 14:15
    #36379931
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Ну так если эксель в фоне - точно тормозить будет. А выйты из кода по Esc можно.
...
Рейтинг: 0 / 0
22.12.2009, 14:19
    #36379944
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Hugo121,

Знаю, но зачем - пусть трудится! Солдат спит - служба идет... :)
...
Рейтинг: 0 / 0
22.12.2009, 15:40
    #36380182
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Hugo121Да уж, предельно ясная задача... :)
Я могу подсобить универсальным макросом http://hugo.nxt.ru/CompareFiles.Find.Rus.v090.rar
Поизучал ваш код, сделал для себя ещё одно открытие.
А именно использование такого кода
Код: plaintext
Cells( 6 , "G")
.
Не знал, что тут можно использовать имя столбца, всегда использовал только порядковый номер столбца.
...
Рейтинг: 0 / 0
22.12.2009, 15:49
    #36380209
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Я это по-моему у _Boroda_ подглядел, у него такой почерк особенный, я ещё стал использовать синтаксис типа [a1].value
...
Рейтинг: 0 / 0
22.12.2009, 15:50
    #36380211
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Многокритериальный фильтр
Hugo121Я это по-моему у _Boroda_ подглядел, у него такой почерк особенный, я ещё стал использовать синтаксис типа [a1].value
Да, про [a1].value я тоже на этом форуме узнал.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Многокритериальный фильтр / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]