Страницы: 1
RSS
Поиск номера элемента массива
 
Добрый день, уважаемые коллеги!
К сожалению, не могу сам найти решения для следующей задачи:
Есть двумерный массив  Array (1 to i, 0 to 4), значения в котором не повторяются.
Нужен поиск определенного значения по всему полю массива от 1 до i по столбцу 0 без использования цикла. Результатом должно быть номер первой размерности массива (которая 1 to i).
Циклом это будет так:
Код
For i=1 to ubond(Array,1)
If Array(i,0)=ИскомоеЗначение then
НомерСтроки=i
end if
next i
Программный код, как и яды, лучше тестировать по капельке
Люблю изобретать велосипеды с колесами произвольной формы
 
Hypohelix, Используйте коллекцию вместо массива
Изменено: Александр П. - 01.08.2019 09:40:44
 
Александр П., к сожалению, с коллекциями работать не умею. Да и переписывать придется слишком много при замене. Хотя, как вариант, можно рассмотреть перевод этой части массива в коллекцию и поиск в ней, но, как я уже говорил, не умею работать с коллекциями
Программный код, как и яды, лучше тестировать по капельке
Люблю изобретать велосипеды с колесами произвольной формы
 
Т.к. не повторяются - можно при создании массива (ну или сразу после) создать ещё параллельный словарь (ну или коллекцию), куда занести эти значения и номера.
Тогда вместо поиска по массиву можно брать значение из словаря/коллекции уже сразу готовое, без поиска.
 
Цитата
Hypohelix написал:
можно рассмотреть перевод этой части массива в коллекцию
используя цикл, а уж потом
Цитата
Hypohelix написал:
поиск определенного значения по всему полю массива от 1 до i по столбцу 0 без использования цикла
- отличная оптимизация может выйти. Вас что смущает в поиске с циклом?
По вопросам из тем форума, личку не читаю.
 
Код
Function MyID(iRng As Range, iVal, iColumn)
With Application
    MyID = .Match(iVal, .Index(iRng.Value, 0, iColumn), 0)
End With
End Function
Изменено: Sanja - 01.08.2019 10:12:37
Согласие есть продукт при полном непротивлении сторон
 
Цитата
БМВ написал:
отличная оптимизация может выйти. Вас что смущает в поиске с циклом?
А то, что это будет в глубине другого цикла, то есть время работы не устраивает. Зато у меня ко мне же появился замечательный вопрос: а что меня не устраивает в поиске через цикл вне другого цикла?! Скорее всего, так и сделаю: сильно замедлить не должно, да и выполняться эта часть будет не так уж часто. Спасибо за вразумление.
Программный код, как и яды, лучше тестировать по капельке
Люблю изобретать велосипеды с колесами произвольной формы
Страницы: 1
Наверх