|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.11.2009, 06:22 | #61 | ||||
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Здравствуйте, Tidus.
По Вашим вопросам из поста № 49: Цитата:
Цитата:
Цитата:
Цитата:
1. Всегда ли начальное время (0:00:00 или 1:10) обязательно будет присутствовать? 2. Если, например, конечное время установлено 12:15, то следующее после него в таблице время может быть как больше, так и меньше? 3. В общем случае, есть столбец с значением времени, в котором это время, начиная с произвольной величины увеличивается. Т.е. имеем "кучу" промежутков времени, каждый из которых представляет увеличивающийся диапазон. Задача - найти максимумы значений из соответствующего столбца, из каждого промежутка времени, ограниченного заданными значениями. Так? 4. Прикрепите пример файла. Не нужно все 40 метров. Достаточно 100 строк, среди которых будут встречаться все возможные варианты.
Чем шире угол зрения, тем он тупее.
|
||||
30.11.2009, 17:46 | #62 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
Вот ещё один пример расчета формулами без макросов:
Можно сделать все! Было бы время, да деньги...
|
30.11.2009, 20:18 | #63 |
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
mchip,у вас тоже оригинальное решение. Вы не могли бы описать алгоритм вычислений и добавить в свое сообщение кроме файла ещё и используемые формулы к файлу с пояснениями в своем посте,- так будет более наглядно и полезнее для участников ветки. А так, огромное спасибо за такое решение. Я думаю, что этот способ положу в свою копилку знаний.
|
30.11.2009, 22:46 | #64 | ||||
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Цитата:
Код:
Цитата:
Цитата:
Цитата:
Последний раз редактировалось Tidus; 30.11.2009 в 22:54. |
||||
01.12.2009, 01:07 | #65 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
Все довольно просто.
В зеленой области формулой массива проверяем наличие всех значений. Код:
в данных вычислениях результат проверки не используется (вставил только из за IgorGO, у него проверка реализована другим способом) В столбце G высчитываем позицию очередного массива по следующей формуле: Код:
СМЕЩ($A$1;1+G2;;100 - высчитывает диапазон для поиска с учетом предыдущего результата В столвце H собственно высчитывается сам результат Код:
Можно сделать все! Было бы время, да деньги...
|
01.12.2009, 07:15 | #66 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение. В ячейке "I4" задается временной интервал (через дефис, без пробелов). Найденные максимумы вставляются в столбец "H". С Вашего позволения, для наглядности, в столбец "I" вставляются даты, соответствующие найденным максимумам. Если требуется - доработайте макрос "под себя". Процедура должна выполняться быстро.
Чем шире угол зрения, тем он тупее.
|
01.12.2009, 14:56 | #67 | |
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Цитата:
1. Как отменить изменения, которые были внесены макросом, после нажатия кнопки "Пуск". Поддерживает ли это эксель2007? 2. Например, удаляю одну дату в первом столбце (1.09.1999) и у меня строчка с удаленной датой не анализируется. Целесообразней было бы сделать так, что если я удалил время во 2 столбце, то строка не анализировалась, но никак не дату. 3. Этот макрос написан для одного столбца, то есть он ищет максимальные значения в одном столбце и вставляет их в другой столбец. Изменив всего 1 цифру, макрос будет анализировать уже другой столбец и также вставлять макс. значения в столбец. А если мне нужно анализировать сегодня два столбца, а завтра 3-5 столбцов, то как быть? Задача такая: выбрать макс. значения из 3 столбца и вставить их в 5 столбец, а потом мне нужно выбрать макс. значения из 4 столбца и вставить их уже в 6 столбец. Я вижу такие варианты решения этой задачи: - Можно создать копию это же макроса и вставить вторую кнопку, которая считает уже по другому столбцу; - Или же можно просто изменять код этого макроса каждый раз, когда необходимо выбрать, из каких именно столбцов планирует выбирать макс. значения и в какие именно столбцы вставлять эти значения. Вы профессиональный программист. Как бы вы решили эту задачу? Последний раз редактировалось Tidus; 01.12.2009 в 15:02. |
|
02.12.2009, 06:29 | #68 | ||
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Во вложении реализован поиск и вставка по произвольным столбцам. А также, ввод временного интервала. Все параметры задаются в форме.
Теперь вопросы к Вам: Цитата:
Цитата:
Чем шире угол зрения, тем он тупее.
|
||
02.12.2009, 22:16 | #69 | |||
Форумчанин
Регистрация: 08.09.2009
Сообщений: 133
|
Цитата:
Цитата:
Это на самом деле общий вопрос, который меня мучал с того самого момента, когда я начал использовать макросы. Иногда бывает случается и так, что при отладке макроса происходит замена не тех ячеек, которые я планировал и они стираются, а потом думал, как вернуть всё обратно и ничего не остаётся, как закрывать файл без сохранения и открывать заново. Цитата:
1. Нужно, чтобы справа вставлялось сначала время, потом дата (дата в принципе уже вставляется). Привязку в коде делать нужно конкретно к времени. Если время отсутствует, значит и строчка не должна обрабатываться, если же отсутствует дата, то строка все-равно должна обрабатываться, так как время у нас имеется. 2. Проверьте у себя:когда нажимаю ПУСК, затем вбиваю дату от 0:00 до 3:05 , для поиска: 4 столбец и для вставки 8 столбец. Жму ОК, макрос срабатывает и что мы видим: напротив строки 3:05 самое большое значение 1,6075, но макрос его не увидел и вставил значение 1,6072. Нонсенс, проверял с другими строками - всё работает на Ура, именно с этой строкой - не хочет. 3. А можно ли сделать так,чтобы форма хранила последние введенные данные в форму во всех полях при повторном нажатии кнопки Пуск? 4. Заметил такой глюк, через некоторое время когда я нажимаю на кнопку Пуск у меня вылетает такая ошибка: Run-time Error '75' Could not find specified object. Дебагер отображает ошибку в строчке Private Sub CommandButton1_Click(): UserForm1.Show 0: End Sub Потом при сохранении вылетела ошибка о восстановлении документа, странное поведение Экселя однако и так каждый раз. P.S. благодаря этому макросу я сейчас провожу очень серьёзные научные исследования на валютных рынках Форекс. Уже тестирую идеи великого трейдера Ларри Вильямса и нашёл кое-какую закономерность движения валюты. Я думаю, что данная тема неспроста набирает всё бОльшую популярность на этом форуме и такие вот макросы сейчас становятся всё более актуальными, так как Эксель позволяет анализировать большой объем данных с высочайшей скоростью. Последний раз редактировалось Tidus; 03.12.2009 в 00:48. |
|||
03.12.2009, 07:33 | #70 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение. Постарался исправить все неточности и реализовать все Ваши пожелания. Теперь, при нажатии кнопки "Пуск", заполняем форму и нажимаем "ОК". Если данные внесены верно, выполняется поиск и вставка значений, согласно данным, внесенным в форму. Причем, в указанный столбец заносится максимальное значение, в следующий столбец (правее) - дата (если она присутствует), а в следующий - время. Форма скрывается. При следующем нажатии на кнопку "Пуск", появится форма с внесенными ранее значениями и кнопка "Отмена" будет активна. Если ее нажать - произойдет возврат в предыдущее состояние и кнопка деактивируется. Обратите внимание, что вернуть можно только на 1 шаг назад. Т.е., если выполнить 2 поиска подряд, то вернуть можно только то состояние, которое было перед последним поиском.
Чем шире угол зрения, тем он тупее.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
5 максимальных значений в сводной таблице в новом Excel | Катик7 | Microsoft Office Excel | 2 | 03.09.2009 17:26 |
Случайный выбор значений из списка | Stoodentka | Microsoft Office Excel | 4 | 14.07.2009 07:56 |
Выбор значений по отдельной группе | michi | SQL, базы данных | 2 | 15.10.2008 22:35 |
Запись файлов в *.тхт с учетом повторяющихся значений | Arteom | Общие вопросы Delphi | 3 | 03.04.2008 17:26 |
выбор значений в цикле | Melok | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 15.12.2007 22:56 |