Страницы: 1
RSS
ВПР по 3 условиям (легкий)
 
Собственно необходимо решение следующей задачи:
Лист1 - выгружается и постоянно меняется
Лист2 - примерно в таком виде необходимо получить результат

Т.к. Лист1 имеет большие объемы (50k уникальных строк и кол-во постоянно растет) ("видов работ" примерно 100, "кодов объектов" около 3k, а "Дата создание" и того больше...) то расчет такой таблицы, при вставке новой выгрузки, с использованием "ИНДЕКС" и "ПОИСКПОЗ" занимает более 2-х часов.

Нет ли какого то решения, как можно оптимизировать данный расчет, не прибегая к "СЦЕПИТЬ" и каким-либо другим изменениям исходной таблицы.
 
"примерно в таком виде необходимо"
Сводная?..  ;)
Изменено: Z - 09.09.2013 20:27:58
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Вариант не плохой...
Но проблема в том что помимо необходимых работ которые необходимо отобразить в сводной таблице есть еще побочные типы работ которые не надо отображать.
То есть: есть 10 основных типов работ и 70 вторичных. Так вот таблица нужна только по основным.
Будут еще идеи?
 
в сводной есть фильтры.
изучите то, что Вам предложили, а не просто "коллекционируйте" идеи на "халяву".

пс.
про "проблему в том..." в первом посте - ни слова.
в третьем посте у вас ещё какие-нибудь особенности-нюансы-условия появятся?
озвучивая задачу "по частям", Вы вообще рискуете перестать получать какие-либо идеи.
имхо.
Изменено: ikki - 10.09.2013 14:27:39
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Спасибо за замечание, приму к сведению.
Насчет "халявы" - я думаю всем понятно что это не домашнее задание а рабочая таблица, но оптимизация не критична, это как раз таки для собственного развития.
По поводу условий есть еще одно замечание поэтому обобщу:
1. Типов работ более 80, нам необходимы данные по конкретным 10.
2. Дата создания типов работ определены. (напр. ТО1-01.01, 01.03, 01.05; ТО2-01.02 и т.д.) правда не думаю что это особо поможет в решении задачи.
 
Цитата
... это как раз таки для собственного развития
Потому что совместный труд для моей пользы... (с)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
на самом деле для собственного развития, т.к. необходимая мне форма на реализации у программистов, а так просто интересно, есть ли решение данной задачи, просто побившись пару недель над данной задачей решения нигде не нашел, вот и думаю то ли я плохо искал то ли Google... :)
 
А как Вы ТЗ своим программистам поставили?

В Вашем примере:
1. У объекта № 100 2 записи с типом Ремонт со статусом Выполнена, а если статусы будут разные, что выводить?
2. У объекта № 100 2 записи с типом Обслуживание 2 со статусом Выполнена и Согласование, выведено в итоге Согласование, а куда делось Выполнена?
3. Можно ли проводить работы в другие даты? И не для всех объектов? Например, провести Ремонт 16/06 только для объекта 100?

Или программисты должны сами решить?

По поводу выделения только основных работ посмотрите пример.
 
Спасибо за отклик.
Вопроса про ТЗ не понял. Задача поставлена посредством e-mail.
1., 2. Брать первое значение (по принципу ВПР)
3. а) Работы проводить можно, но дата создания жестко закреплена.
3. б) Да, работы могут проводиться не на всех объектах.
Пример решения к сожалению не подходит, т.к. в нем в исходной таблице добавляется ключ.
 
Я тоже пример посмотрел - но понял, что ничего не понял из результата :)
А схема чувствую может быть как всегда - сперва циклом по данным набираем словарь, ключи такие, по которым нужно позже эти данные искать.
Ну и позже ищем - по запросу, или циклом по другой таблице с параметрами.
Можно эти параметры сперва набрать в другой словарь и выгрузить в эту итоговую таблицу.
Например по вертикали/горизонтали выгрузить все типы и даты, затем на пересечении заполнить данными из словаря (можно по несколько данных в ячейку, если в один день было несколько событий у одного интересующего типа).
Или не все типы, а только интересующие 10.
 
Цитата
Ну и позже ищем - по запросу, или циклом по другой таблице с параметрами.
Словарь не проблема, а вот запрос или цикл... Формулы считают около 2-х часов...
 
На словаре быстро.
Правда заполнение словаря из миллиона строк занимает около 30-ти секунд, но зато потом поиск по этому миллиону мнгновенный.
Т.е. я думаю переложить миллион в другом порядке можно за минуту. Ну две.
 
Видимо я не совсем понял про словарь - поясните пожалуйста. Желательно на примере - что будет словарем.
 
Не, примеры писать неинтересно. Если нужно - ищите примеры по форуму по scripting.dictionary.
Коротко - словарь это что-то вроде списка из двух столбцов - в одном ключ, например дата и тип:
"15.06.2013|ТО1-01.01"
во втором почти что угодно, в этом случае например список работ и статусов.
Набрали словарь, теперь хотите знать что было с ТО1-01.01 именно 15.06.2013 - и уже знаете.

А по примеру что из чего нужно получить - не понятно. Можно конечно что-то придумать - но есть и интереснее занятия...

Давайте другой пример - может там будет понятнее... Будет завтра на работе время - посмотрю.
Изменено: Hugo - 10.09.2013 20:04:43
Страницы: 1
Наверх