Страницы: 1
RSS
Как брать следующее значение, если уже ранее брали подобное?
 
Формула для гугл таблицы:
Код
=ДВССЫЛ("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.
ссылка ну гугл таблицу
Скрин:
Изменено: mik777em - 15.02.2024 20:24:32
 
mik777em, пример от картинки отличается тем что в нем что-то можно сделать.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
mik777em , пример от картинки отличается тем что в нем что-то можно сделать.
да, спасибо. Добавил в теме ссылку на гугл таблицу
 
С доп.столбцом на литсе ITOG
Алексей М.
 
Так не пойдет?
Код
=SORT(HSTACK(ITOG!D2:D11;ARRAYFORMULA(value(ITOG!E2:E11)*100));2;false)
 
Цитата
написал:
С доп.столбцом на литсе ITOG
спасибо, это сработало с доп столбцом.
Но если в столбце Е некоторые цифры отрицательные, например если в E2:E11 так стоит:
Код
0,05%
0,2%
0,3%
0,4%
0,5%
-0,6%
0,7%
0,04%
0,05%
1%
То получаю #ЗНАЧ! в формулах:
Код
=LARGE(SUBSTITUTE(0&$ITOG.E$2:E$33; "%"; "") / 100; ROW() - 1) * 100

Код
=INDEX($ITOG.D$2:D$33;MATCH(B2&"%"&COUNTIF(B$2:B2;B2);$ITOG.E$2:E$33&$ITOG.F$2:F$33;))
Изменено: mik777em - 15.02.2024 23:06:42
 
Цитата
написал:
=SORT(HSTACK(ITOG!D2:D11;ARRAYFORMULA(value(ITOG!E2:E11)*100));2;false)
получаю ошибку
 
Цитата
mik777em написал:
получаю ошибку
Формула возвращает все значения ваших 2 столбцов. Вводите её там где есть достаточно пустого места ниже и правее (10х2 ячеек)
 
Цитата
написал:
о получаю #ЗНАЧ! в формулах
Это исправляется, но функция НАИБОЛЬШИЙ() определяет очередное наибольшее, а значение с минусом, в лучшем случае может быть только последним наибольшим среди значений диапазона.
Изменено: АlехМ - 16.02.2024 09:55:04
Алексей М.
 
Цитата
написал:
Это исправляется, но функция НАИБОЛЬШИЙ() определяет очередное наибольшее, а значение с минусом, в лучшем случае может быть только последним наибольшим среди значений диапазона.
да, это сработало! спасибо. Так я и хотел чтоб по математически расставляло, то есть например -2 всегда будет ниже -1, так как -1 больше чем -2 , но -1 всегда меньше чем ноль, а ноль больше чем 1, и т.д. ну вы поняли.
конвертировал формулы для гугл таблицы, может кому-то будет полезно: https://docs.google.com/spreadsheets/d/1XzXWxxnKPE8C4rDzp80AH4o7nH40-lg1L1aYEZ3STfE/edit#gid=1284821...
Изменено: mik777em - 16.02.2024 11:08:11
 
mik777em, формула из столбца С покороче. Не подошла?
Алексей М.
Страницы: 1
Наверх