Анализ массива данных

Программирование на Visual Basic for Applications
MefRunner
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 25.05.2004 (Вт) 5:16

Анализ массива данных

Сообщение MefRunner » 02.08.2004 (Пн) 6:52

Вопрос вот в чем:
Имеется массив данных определенной размерности. Все данные имеют числовой формат. Есть ли какая-либо функция которая позволяет определить наименьшее (наибольшее) значение в данном массиве и соотвественно индес элемента массива которому оно (значение) собственно принадлежит.
Как вариант эту проблему можно решить перебором, но это немного неудобно при большом объеме данных.
Заранее благодарен.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.08.2004 (Пн) 13:24

Стандартных функций поиска минимума и максимума нет.
I don't understand. Sorry.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.08.2004 (Пн) 17:13

Ага.
Но для начала выясним вопрос о том, из какого приложения тот VBA, о котором идёт речь :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

MefRunner
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 25.05.2004 (Вт) 5:16

Сообщение MefRunner » 03.08.2004 (Вт) 4:38

Извиняюсь, что не конкретно написал. В общем речь идет об Экселе. Конкретно задача такова, есть столбец с данными, создается массив чисел
Dim Pl (1 to 76) as long
После этого необходимо найти наименьшее значение в данном массиве и произвести ряд действий с дланными представленными в строке содержащей наименьшее значение.
После этого переменной придается значение заведомо большее, чем любое значение массива.
Следом из массива вновь выбирается наименьшее значение и т.д.
В общих чертах вот так.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.08.2004 (Вт) 17:16

Моно юзать стандартные функции экселя, которые ожидают диапазон данных, для обработки массива. То есть, к примеру, worksheetfunction.max(arr).
А вообще, фигнёй не страдай, массив отсортируй, и потом по порядку, от первого элемента...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

MefRunner
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 25.05.2004 (Вт) 5:16

Сообщение MefRunner » 04.08.2004 (Ср) 5:36

Если имеется ввиду сортануть сами данные то к сожалению это делать нельзя, во-первых данные там меняются по столбцам, поэтому сортировка особого смысла не имеет.
А если имеется ввиду отсортировать сам массив, т.е. индексы массива по возрастанию или наоборот, то если честно я не в курсе как это можно сделать. Тем более тут имеется несколько взаимосвязанных массивов, и их сортировка мне личнопердставляется затруднительной.

Raul
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 25.06.2004 (Пт) 10:17

Сообщение Raul » 05.08.2004 (Чт) 14:52

MefRunner писал(а):речь идет об Экселе. Конкретно задача такова, есть столбец с данными, создается массив чисел.

Не понял :(...
почему не устраивает то, что предлагал GSerg:
GSerg писал(а):Моно юзать стандартные функции экселя, к примеру, worksheetfunction.max(arr)....

для начала примерно так:
worksheetfunction.ПОИСКПОЗ((МАКС(A1:A76)); A1:A76;0)

Raul

MefRunner
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 25.05.2004 (Вт) 5:16

Сообщение MefRunner » 06.08.2004 (Пт) 7:52

Да не то чтобы не устраивает, в принципе мне не важно как лишбы работало просто сейчас временно отвлекся и с понедельника начну пробовать как и что.
Спасибо за ответы.
Будут еще предложения милости просим


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 96

    TopList