|
|
|
максимум
|
|||
|---|---|---|---|
|
#18+
оочень простая на первый взляд задача: есть масив данных в экселе нужно найти максимальное значение с конца на n-значение например, есть данные 4 6 7 8 9 10 нужно найти максимально отсающее от самого максимального на 3 числа. т.е. правильный ответ 8 вот моё творение Function maxX(rng As Range, cut As Byte) As Single Dim q As Object, w1 As Single, w2 As Single, w3 As Single, w4 As Single, i As Byte w3 = 1E+19 For i = 1 To cut For Each q In rng w1 = q.Value If w1 > w2 And w1 < w3 Then w2 = w1 ' If w3 = w4 And w1 = w3 Then w2 = w1 'Debug.Print w1, " ", w2, " ", w3, " ", w4 w4 = w1 Next w3 = w2 w2 = 0 w4 = 0 Next i maxX = w3 End Function моя проблема: если в массиве нет повторящихся чисел, то всё работает отлично, но если есть повторящиеся то начинаются проблемы, а имено берём старый пример 4 6 7 8 9 9 теперь моя фунция выдаёт нет 8, а 7 что для решения моей проблемы является не приемлимым.... источник ошибки я нашёл и сам он строке w1 < w3, нужно ещё добовлять or w3=w4 (по моему мнению), но тогда алгоритм спотыкацца в другом месте.... и дальше что делать я не знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2008, 21:55:07 |
|
||
|
максимум
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2008, 05:46:55 |
|
||
|
максимум
|
|||
|---|---|---|---|
|
#18+
ага спасиб... добрые люди ещё подсказали есть стандартная функция наибольший ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2008, 13:21:23 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35697690&tid=2180039]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 315ms |

| 0 / 0 |
