Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Подобрать на определенную сумму из списка
 
MCH, стоимость около 10 млн, второй параметр проходимость - сотни тысяч около 150 - 200. Алгоритм динамического программирования справляется с подбором суммы до 2 млн, в течении пары секунд. Но никак пока не пойму как сюда еще прикрутить, чтобы выполнялось одновременно и второе условие.
Сводная таблица с данными из Oracle
 
А не проще сделать так: дать доступ к вьюхе на select пользователю, например report. В excel заходим в раздел данные - из других источников - из мастера подключения данных. Там выбираем поставщика OLE DB для Oracle. Указываем параметры подключения сервер, пользователь/пароль и если все введено корректно, нам предоставляется выбор вьюхи.
Далее на основе этих данным мы уже строим сводную таблицу, рядом можно поставить кнопку, назвав её обновить и присвоить для нажатия на кнопку следующий код -
Код
Sub Обновить()
ActiveWorkbook.RefreshAll
End Sub
Подобрать на определенную сумму из списка
 
Цитата
MCH написал:
anatmozg, в Вашем примере слишком много данных, можно приложить более простой пример (без начальных данных, фильтрованных и т.п.)?
Есть данные по городам, стоимость и количество контактов (тоже самое что и вес и стоимость). Возможно ли решить такую задачу, чтобы подобранные строки соответствовали двум условиям?
Подобрать на определенную сумму из списка
 
Цитата
MCH написал: Приложите пример с данными, можно попробовать решить перебором или динамическим программированием
В файле уже реализована некая логика. Есть источник с данными - лист Data, лист Фильтр - фильтрация данных. Источник данных обновляемый, подтягиваются данные из вьюхи. В фильтре выбираются города по которым нам необходимы данные. Вводится значение стоимости букинга для Москвы и регионов. Нажимается кнопка.
Сейчас работает остаются только те строки, по которым выбраны города. Это был первый этап фильтрации.
Далее задача перетекает в видоизмененную задачу о рюкзаке. С тем отличием, что у нас участвуют в качестве ограничения два параметра - стоимость букинга и количество контактов.
Возможно ли, если задача решается с предоставленными условиями, оставить только те строки, которые подходят, остальные удаляются ? Либо строки переносить в новый лист?
Подобрать на определенную сумму из списка
 
bedvit, Простите, а есть ли алгоритмы которые отбирают строки по подбору на определенную сумму, по двум параметрам?
Например есть строки, в столбце A - наименование, в B - стоимость, в C - вес.

Необходимо подобрать те строки, стоимость и вес, которых соответствуют условию.
Например отобрать продукты общим весом на 50 кг и стоимостью на 25000 +/- 2500 из
Изменено: anatmozg - 07.08.2015 17:06:06
Фильтрация данных по параметрам из другого листа
 
Цитата
Влад написал:
макросе идет попытка удалить несмежные строки в смарт-таблице, но строки взяты полные (со всего листа), что не допускается. Вот так должно сработать
Спасибо! Отлично работает!
Фильтрация данных по параметрам из другого листа
 
Цитата
Hugo написал: И где в файле код?
Alt + F11 , переходим на вкладку Фильтр
Фильтрация данных по параметрам из другого листа
 
Добрый день!

Есть excel файл, состоящий из двух страниц - первая "Data" - источник данных, которые необходимо в последующем отфильтровать, и вторая "Фильтр". На странице фильтра задаются параметры фильтрации. На этой же странице находится кнопка по нажатию на которую, данные должны быть отфильтрованы.

Логика была такая. Создал переменную массив, длиной 20 - Dim mass(20) As String. В переменную помещаю Наименования городов, у которых отмечена галка, в поле количество городов. Далее перехожу на страницу Data, вычисляю количество строк в источнике, и оператором For Each по диапазону проверяю на совпадение города, с элементами массива. В случае совпадения ничего не делаем, другие строки добавляем в переменную delra типа Range и по окончании цикла удаляем эти строки.
Код
lLastRow = Sheets("Data").Cells(Sheets("Data").Rows.Count, 1).End(xlUp).Row
Worksheets("Data").Select
For Each ra In Worksheets("Data").Range("A3:A" & lLastRow)
    'перебираем все фразы в массиве
    For Each word In mass
        ' если в строке найден искомый текст
                If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then
                ' добавляем строку в диапазон для удаления
                    If delra Is Nothing Then
                        Set delra = ra
                    Else
                        Set delra = Union(delra, ra)
                    End If
        End If
    Next word
Next ra
If Not delra Is Nothing Then delra.EntireRow.Delete

только ошибка почему-то возникает в момент удаления delra.EntireRow.Delete

Подскажите, в чем может быть ошибка?
Страницы: 1
Наверх