Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2012, 09:54   #1
solnce60
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 56
По умолчанию Как выделить строки с определенной последовательностью данных

Уважаемые господа!Добрый день!
Помогите пожалуйста решить такую задачу.
Есть таблица с отфильтрованным диапазоном данных.
Есть колонка Н .
Есть ячейки колонки Н
Каждая ячейка колонки Н - это первая ячейка строки справа от этой ячейки.
ЗАДАЧА
В колонке Н необходимо выделить (например цветом) только те ячейки справа от которых в соответствующей им строке
-значение МЕНЬШЕ ИЛИ РАВНО 0,0000(розовый цвет) встречается РАНЬШЕ значения БОЛЬШЕ 0,0049(синий цвет)
или
-значение МЕНЬШЕ ИЛИ РАВНО 0,0000 просто встречается в вышеуказанной строке если значение БОЛЬШЕ 0,0049 в данной сроке отсутствует.
Сейчас данную задачу я решаю вручную при помощи фильтрации и условного форматирования.Но это очень долго , утомительно и чревато ошибками
Как решить данную задачу более быстро и более надежно?
С уважением.благодарностью и наилучшими пожеланиями.
Андрей.
Вложения
Тип файла: rar EURUSD6000.rar (807.5 Кб, 12 просмотров)
solnce60 вне форума Ответить с цитированием
Старый 23.11.2012, 11:17   #2
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

не совсем понятно условие:
если вся строка H>=0.0049 или H<=0.00001
или если хотя бы одна из ячеек H>=0.0049 или H<=0.00001
или еще как?
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 23.11.2012, 11:42   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вам нужны точки разворота?
Только вот таймфрейм странный-100 часов.
Есть опыт в обработке тиковых данных по алгоритму заказчика.
Если интересно,пишите в личку.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 23.11.2012, 12:39   #4
solnce60
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 56
По умолчанию

В строках после колонки Н значения <0.0001 и значения >0.0049 чередуются между собой в случайном порядке.
Нужно выделить только те ячейки в столбце Н в строках после которых значение <0.0001 встречается первым,т.е. перед значением >0.0049
или просто встречается,если значение >0.0049 в строке отсутствует.
solnce60 вне форума Ответить с цитированием
Старый 23.11.2012, 12:55   #5
solnce60
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 56
По умолчанию

Достаточно однократного,ПЕРВОГО появления в строке значения <0,0001 перед значением >0,0049 .
В этом случае соответствующая ячейка в столбце Н должна выделиться.
Например ячейка Н100
В ячейке W100 - значение <0,0001(в предыдущих ячейках этой строки до Н100, значения <0,0001 и >0,0049 отсутствуют)
В ячейке Z100 - значение >0,0049
В этом случае Н100 должна выделится
Например ячейка Н100
В ячейке W100 - значение <0,0001(в предыдущих ячейках этой строки до колонки Н, значения <0,0001 и >0,0049 отсутствуют)
В ячейках после W100 - значение >0,0049 отсутствует
В этом случае Н100 должна выделится
solnce60 вне форума Ответить с цитированием
Старый 23.11.2012, 13:30   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см.вложение. (сделано условным форматированием)
Вложения
Тип файла: rar EURUSD6000.rar (802.2 Кб, 17 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.11.2012, 14:33   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я на планете такой код написал:

Код:
Sub tt()
    Dim a(), i&, ii&
    a = [h4].CurrentRegion.Value
    ReDim b(1 To UBound(a), 1 To 1)
    For i = 1 To UBound(a, 1)
        For ii = 1 To UBound(a, 2)
            If a(i, ii) < 0.0001 Then b(i, 1) = 1: Exit For
            If a(i, ii) > 0.0049 Then Exit For
        Next
    Next
    [f4].Resize(UBound(b), 1) = b
End Sub
0<0,0001!

P.S.
Почти сходится с результатом Игоря, если внутренний цикл делать с 2:
For ii = 2 To UBound(a, 2)
Но похоже что нужно сперва значения округлять - например в ячейке I31 видно 0.0001, а значение там 0.000099999999999989, что < 0.0001!
Т.е. есть вопросы к ТС
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 23.11.2012 в 14:39.
Hugo121 вне форума Ответить с цитированием
Старый 23.11.2012, 14:39   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Подклеил к пред. посту.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 23.11.2012, 15:59   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ага с данными я тоже нарвался...
вижу в ячейке 0.0049, считаю сколько 0.0049 в строке, а функция показывает 0 шт. присмотрелся , а там 0.00489999999...

как тут не вспомнить:
"не все то золото, что блестит"
"на самом деле все бывает совсем не так, как в действительности"

...и совсем не в тему, но смешно "тиха украинская ночь, но сало лучше перепрятать"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.11.2012, 19:43   #10
solnce60
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 56
По умолчанию

Ребята!Большое вам спасибо.
Как хочется научиться это делать самостоятельно....!
Hugo121,скажи пожалуйста а куда нужно вставлять этот код?
Наверное в формулу?
IgorGO,ты решил эту задачу при помощи условного форматирования.
А каким правилом ты пользовался? Или ты создавал свое правило.
Буду тебе признателен если объяснишь по-конкретнее.
Спасибо.
solnce60 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выделить числа из строки ? f_z_l Общие вопросы C/C++ 1 27.10.2012 20:21
Как правильно выделить буфер для приёма строки от WinApi функции c0mp Win Api 14 03.08.2012 17:10
[PHP] Изменение определенной строки JonMagon Помощь студентам 1 16.10.2011 09:25
Сделать таблицу с определенной последовательностью deimos606 Microsoft Office Excel 1 13.02.2011 11:29
Как найти область Rect определенной строки в ListBox? Artik Компоненты Delphi 0 11.06.2009 19:16