powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA и Excel. Поиск ближайшего значения
11 сообщений из 11, страница 1 из 1
VBA и Excel. Поиск ближайшего значения
    #34617026
Eriksson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для поиска строки с соответствующей датой я использую функцию Find, но она находит только точные значения. А можно ли настроить эту функцию так: чтобы при отсутствии соответствующей даты, она находила строку с ближайшей датой по сравнению с искомой?
Заранее спасибо, Эриксон Артем
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34617040
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Настроить" нельзя. Нужно писать свою.
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34617135
Eriksson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но
Неужели нет другой альтернативы? - я пытаюсь повысить производительность своей проги и эта функция в 12-15 раз быстрее работает чем написанная процедура построчной переборки значений в базе данных.
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34617168
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ErikssonСпасибо, но
Неужели нет другой альтернативы? - я пытаюсь повысить производительность своей проги и эта функция в 12-15 раз быстрее работает чем написанная процедура построчной переборки значений в базе данных.
если ексел используеться как бд
можно сделать выбору sql запросом и перебирать уже наденные записи
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34617205
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для ацесса
WHERE data >= cdate('01/01/2005')
или
WHERE data BETWEEN cdate('01/01/2005') AND
cdate('01/01/2006')
не очень понятное понятие ближайшая дата
дата может быть или меньше или больше , равно или между
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34617222
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а кто мешает написать свою функцию используя Find как основу.
А в качестве параметра передавать тот интервал (N) в котором тебя интерсует поиск "по ближайшей дате"
Правда я так понимаю что время увеличится в N раз (если интересует поиск только в одну сторону) и в 2*N если интересует даты как до так и после указанной.
Все равно быстрее будет чем перебор всех строк в листе.


С уважением, Николай.
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34617319
Eriksson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gjghjcНу а кто мешает написать свою функцию используя Find как основу.
А в качестве параметра передавать тот интервал (N) в котором тебя интерсует поиск "по ближайшей дате"
Правда я так понимаю что время увеличится в N раз (если интересует поиск только в одну сторону) и в 2*N если интересует даты как до так и после указанной.
Все равно быстрее будет чем перебор всех строк в листе.


С уважением, Николай.


Спасибо, к этому и пришлось прибегнуть - только задержка увеличивается в случае с ростом интервала между искомой датой и ближайшей датой соответствующей записи.

Под понятием ближайшая дата - я подразумеваю дату, которая существует в базе и находится ближе всех к заданному значению.
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34617620
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так.. до кучи...

Код: plaintext
1.
2.
SELECT min( tmp_clients.BIRTH_DATE)
FROM tmp_clients
WHERE tmp_clients.BIRTH_DATE  > cdate(' 10 / 10 / 1955 ');

Вернет первую дату в таблице ПОСЛЕ 10 октября 1955.

Код: plaintext
1.
2.
SELECT Max( tmp_clients.BIRTH_DATE)
FROM tmp_clients
WHERE tmp_clients.BIRTH_DATE  < cdate(' 10 / 10 / 1955 ');

Вернет первую дату в таблице ДО 10 октября 1955.

И сразу вопрос. Есть такая инструкция TOP, а как называется ее антипод (например нужно получить не 100 первых, а 100 последних записей?).

С уважением, Николай.
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34618281
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно
тогда с TOP использовать и ORDER BY ... DESC

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34618286
Ден Программёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotI Have Nine Lives You Have One Only
THINK!

We are knew this
...
Рейтинг: 0 / 0
VBA и Excel. Поиск ближайшего значения
    #34618305
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 HandKot, спасибо. Все гениальное просто. :) Нужно только голову включать :)
С уважением, Николай.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA и Excel. Поиск ближайшего значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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