Страницы: 1 2 След.
RSS
Поиск определенного значения в стобце значений. Нужен код:)Спасите помогите...сами мы не местные..
 
в поиске ничего похожего че то не нашел.  
Вопрос в следующем.  
дан диапазон А           В  
            21     2.13546  
            ,,,        ,,,  
 
в результате определенных расчетов у меня получается значение 2.13428 (числа разные по сравнению с ячейкой В1)  
как организовать правильный поиск числа 2.12428 в диапазоне значений, далее при находждении в диапазоне наибольшего приближенного значения выбирать соответсвуюшее ему значение в стобце А ???
 
Выделяете диапазон А:В. ДанныеСортировка-По_убыванию (столбец В).  
Формула =ПОИСКПОЗ(число;В:В) найдет ближайшее большее.С помощью СМЕЩ или ИНДЕКС найти значение из столбца А.
 
типа так?
Живи и дай жить..
 
КОД!?!? :) Я макрос пишу, его частью является код поиска значения:) функция конечно тоже пригодится, для общего развития. Другие варианты есть?:)
 
нашел вот такой макрос поиска по условию. может его упростить как то.:)  
Sub CustomSearch()  
  Dim strFindData As String  
  Dim rgFound As Range  
  Dim i As Integer  
 
  ' Ввод строки для поиска  
  strFindData = InputBox("Введите данные для поиска")  
  ' Просмотр всех рабочих листов книги  
  For i = 1 To Worksheets.Count  
     With Worksheets(i).Cells  
        ' Поиск на i-м листе  
        Set rgFound = .Find(strFindData, LookIn:=xlValues)  
        If Not rgFound Is Nothing Then  
           ' Ячейка с заданным значением найдена - выделим ее  
           Sheets(i).Select  
           rgFound.Select  
           Exit Sub  
        End If  
     End With  
  Next  
  ' Поиск завершен. Ячейка не найдена  
  MsgBox ("Поиск не дал результатов")  
End Sub
 
{quote}{login=north_rain}{date=20.01.2009 02:09}{thema=}{post}КОД!?!? :) Я макрос пишу, его частью является код поиска значения:) функция конечно тоже пригодится, для общего развития. Другие варианты есть?:){/post}{/quote}  
 
ну так в чем дело? алгоритмизируется на раз - это раз  
 
можно и без алгоритмизации, а сразу вычислить, тока через имена - это 2  
 
стихи мои :) музыка народная
Живи и дай жить..
 
Дорогой слэн:) я очень ценю ваше творчество, сам пишу стихи:) помогите с командами ВБА пожалуйста:) я пытаюсь преобразовать данный макрос.    
Упрощения в нем такие что не надо перебирать по листам книги и где то надо задать диапазон. сижу пробую уже второй час..вроде бы так все просто:(
 
Sub wwe()  
 
Dim r As Range  
Dim foundCell As Range  
   
Set r = ActiveSheet.Range("B11:B34")  
Set foundCell = r.Find(Range("E8"), LookIn:=xlValues)  
If Not foundCell Is Nothing Then  
   foundCell.Select  
Else  
   MsgBox "String not found."  
End If  
 
End Sub  
вот код поиска определенной ячейки в диапазоне. как сделать так что б он искал приближенные числа?
 
выкинуть его нафик и написать новый :)
Живи и дай жить..
 
с моими знаниями дай бог старый переделать...:)
 
подскажииииииииииииииииииитттттттттттееееееееее кто нибууууддь:) хотите чтоб я умер у вас на форуме.. я это сделаю..предупреждаю:) первый интернет-суицид будет:)
 
По-моему методом Find не получиться определить максимально приближенное значение, т.к. этот метод ищет конкретно заданное значение.  
В файле простой код методом построчного просмотра. Может чем и поможет.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
спасибо, буду пробовать.
 
держи :) только не умирай
Живи и дай жить..
 
спасибо за код. С твоим примером все работает. а с моим почему то нет:( вс евроде бы аналогично. а где ошибка? непонятно.  может у кого есть времечко посмотрите пожалуйста.
 
упростил код до такого    
Sub wwe()  
Dim foundCell As Range  
Range("A21") = "=INDEX(List12!R36C2:R234C2,MATCH(MIN(ABS(List12!R36C2:R234C2-List12!R28C1)),ABS(List12!R36C2:R234C2-List12!R28C1),0))"  
If Not foundCell Is Nothing Then  
foundCell.Select  
Else  
MsgBox "String not found."  
End If  
 
End Sub  
 
но почему то он не хочет искать число..сцукин сын:) как его заставить?
 
ура, я понял.. он не считал потому что надо было в строке INDEX ... и т.д. Перед и вконце выражения поставить {}.:) приятно общаться с самим собой:) как с зеркалом водку пить:)
 
нифига:( счас опять не получается. что такое..
 
{quote}{login=north_rain}{date=21.01.2009 12:50}{thema=}{post}ура, я понял.. он не считал потому что надо было в строке INDEX ... и т.д. Перед и вконце выражения поставить {}.:) приятно общаться с самим собой:) как с зеркалом водку пить:){/post}{/quote}  
 
не скобочки надо ставить, а formulaarray  
 
а чем имена не нравятся?
Живи и дай жить..
 
в исходном коде я так понял происходит вот что:  
создается новый лист в активной книге, где впервую ячейку забивается имя EV (я кстати так и не догадался для чего оно) . а справа (какой то командой) забивается формула ИНДЕКС.    
у меня уже есть готовый лист ( в последнем прикрепленном файле ) где необходимо найти заданное число (оно впоследстии вообще будет из ТЕкстбокса браться). просто нужен универсальный код.    
Поясните пожалуйста свой код до конца, может я смогу нормальн о переделать:(
 
Sub wwe()  
 
Dim foundCell As Range  
Worksheets("List12").Range("A21").FormulaArray = _  
   "=INDEX(List12!R36C2:R234C2,MATCH(MIN(ABS(List12!R36C2:R234C2-List12!R28C1)),ABS(List12!R36C2:R234C2-List12!R28C1),0))"  
 
If Not foundCell Is Nothing Then  
foundCell.Select  
Else  
MsgBox "String not found."  
End If  
 
End Sub  
ВОт это вроде бы сработало.. счас буду дальше думать
 
и еще вопросик к тебе О,Великий Слэн:) Как задать условие чтоб при нахождении заданного числа выделить для дальнейшей обработки в соответсвующей строке значение в первом столбце?
 
ВСЕ!!! СПасибо слэн. Я решил наконец свою задачу. пусть примитивно.. в лоб. ну для начала хотябы так. Как я рад, как я рад..что я еду в ленинград..
 
нет, все не так.. :)  
 
создается имя(добавляется в коллекцию имен - names.add)? которое содержит формулу - можете посмотреть в диспетчере имен (именнованные формулы по умолчанию считаются как формулы массива)  
 
 
затем эта формула вычисляется(для этого служат квадратные скобочки, а можно бы написать evaluate)  
 
так как "внешняя" формула у нас индекс - она возвращает ссылку(или объект range)? что в общем и требовалось доказать..  
 
 
вот вам рабочий файл - тренируйтесь.
Живи и дай жить..
 
все это можно сделать и перебором, но дольше, причем в обоих значениях :)
Живи и дай жить..
 
теперь вроде как все проясняется.. ладно спасибо. поэкспериментирую
 
Слэн посмотри пожалуйста свой код в этом файле?? Почему он не работает? Я не пойму нифига. В твоем примере все пашет. у меня криворукого..... при загрузке юзерформа выскакивает, на нее не обращай внимание. твой код вставле в раздел юзерформ на событие ClickCommandButton. смысл тот же. он сначала должен найти значение ячейки А28 в одном столбце, потом в другом. результат поиска он записывает в Textbox8 и Textbox9. хоть убейте не получается.... Вылазиет мессаджбокс "Нот фаунд и все такое. не может же этого быть ешкинкот...
 
похоже что дело в Option Explisit :) если его удалить все вроде нормал. хз...но ни шагу назад...
 
ладно, нихера чето н получается..иду спать. завтра пробую дальше.:(
 
так имена dict50 и dict100 кто будет определять?  
 
и удалять имя два раза подряд необязательно..
Страницы: 1 2 След.
Читают тему
Наверх