Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как брать следующее значение, если уже ранее брали подобное? (https://javascript.ru/forum/events/85761-kak-brat-sleduyushhee-znachenie-esli-uzhe-ranee-brali-podobnoe.html)

mik888em 15.02.2024 17:43

Как брать следующее значение, если уже ранее брали подобное?
 
Формула для гугл таблицы:
=ДВССЫЛ("ITOG!D" & (ПОИСКПОЗ(НАИБОЛЬШИЙ(ARRAYFORMULA(ЗНАЧЕН(ПОДСТАВИТЬ(ITOG!E$2:E$335; "%"; ""))); СТРОКА(G8)); ARRAYFORMULA(ЗНАЧЕН(ПОДСТАВИТЬ(ITOG!E$2:E$335; "%"; ""))); 0) + 1))


Формула отлично работает, получая номер строки где стоит самое большое число диапазона ITOG!E2:E335 , причём в формуле я учел чтоб она убирала символы "%" что стоят после чисел в ITOG!E2:E335 .

В текущей ячейке (см скрин ниже) где стоит формула (яч A9) функция СТРОКА(G8) используется как фиксированное число для функции НАИБОЛЬШИЙ, чтобы получить k-е по величине значение из массива, где k равно 8. Это означает, что формула для места где она стоит (яч A9) будет искать восьмое по величине значение в диапазоне ITOG!E2:E335
С этим в формуле всё окей!

Формула берет номер первой найденной строки в диапазоне ITOG!E2:E335 , где находится наибольшее число, допустим это строка с номером "x".
Затем она возвращает соответствующее значение из ячейки ITOG!Dx и помещает его в ячейку Ay где собственно эта формула и стоит.

Пример проблемы:
Но! если у нас в диапазоне ITOG!E2:E335 есть одинаковые значения, то формула возьмёт номер первой найденной строки с 8-ой по величине цифрой из диапазона ITOG!E2:E335 .

И т.к. в нашем примере в диапазоне ITOG!E2:E335 8-ое по величине наибольшее значение стоит в ячейках ITOG!E2 и в ITOG!E10 и оно одинаково , то формула выведет в A9 и A10 значение из ячейки ITOG!D2

То из двух одинаковых номеров строк - она возьмет первую найденную строку и по этому в нашем примере она возьмет строку с номером 2.

MallSerg 16.02.2024 02:20

Чем не устраивает стандартная функция =SORT() ?

https://docs.google.com/spreadsheets...it?usp=sharing

mik888em 16.02.2024 10:59

Проблема решена! Просто использовал дополнительный столбец F.

А также добавил, что если есть отрицательные значения в E столбце, то формула норм их обрабатывает , выставляя значения в правильном математическом порядке вот так (как пример): - 4 -3 -2 -1 0 1 2 3 4 5 и тд.

Готовое решение в гугл таблице , может кому-то будет полезно: https://docs.google.com/spreadsheets...gid=1284821245


Часовой пояс GMT +3, время: 02:11.