Наибольшее значение, условие

Автор Виталий Поликарпов, 23.05.2017, 20:25

« назад - далее »

Виталий Поликарпов

Ну где же работает, когда нет. Ну может вы имеете ввиду при текущих значениях??? тогда. да, Но если игроки получили еще по 5 очков, то формула не работает. у меня выводит #ЧИСЛО!
Либо я что-то не так делаю.., делал все по инструкции, разьеденил ячейки и в ставил как массив.

vikttur

Где же не работает? Работает. Давайте еще сообщений по 5 напишем... Покажите, ведь так легче понять, в чем ошибка, и не нужно гадать.

Виталий Поликарпов

Вот так сейчас у меня.

vikttur

Вот, теперь ошибка видна. Появилась при копировании/вставке в сообщение, в моем файле рабочая.
Вместо константы (28) нужно указать ссылку на ячейку ниже, на T10.

zs5

=ЕСЛИ(СЧЁТЕСЛИ(Q4:Q59;НАИБОЛЬШИЙ(Q4:Q59;1))>1;СМЕЩ(B4;ПОИСКПОЗ(НАИБОЛЬШИЙ(Q4:Q59;1);Q4:Q59;0);0);ИНДЕКС(B4:B59;ПОИСКПОЗ(НАИБОЛЬШИЙ(Q4:Q59;2);Q4:Q59;0);1))

Виталий Поликарпов

Цитата: vikttur от 25.05.2017, 09:41
Вот, теперь ошибка видна. Появилась при копировании/вставке в сообщение, в моем файле рабочая.
Вместо константы (28) нужно указать ссылку на ячейку ниже, на T10.
Спасибо огромное!!! Все работает!!

IKor

Если еще актуально:

Обычно для того, чтобы отсортировать формулами таблицу такого вида, я предпочитаю добавлять к целевой переменной (обычно числовой) уникальный индекс (обычно на базе номера строки)
=> ЦелеваяПеременная + СТРОКА()/1000
=> ЦелеваяПеременная + (1000-СТРОКА())/1000
здесь 1000 - это число гарантированно большее числа сортируемых строк.

Во избежание путаницы вспомогательный уникальный индекс можно скрывать при помощи форматирования ячеек.

zs5

Цитата: IKor от 25.05.2017, 18:36
Обычно для того, чтобы отсортировать формулами таблицу такого вида, я предпочитаю добавлять к целевой переменной
актуально: что считать "ЦелеваяПеременная" в актуальной задаче

IKor

Цитата: zs5 от 26.05.2017, 08:01
актуально: что считать "ЦелеваяПеременная" в актуальной задаче
Если добавить "уникальный индекс на базе номера строки" к данным из столбца Q (см. первое сообщение в теме), то значения ячеек Q7 и Q8 станут отличаться друг от друга, что позволит не только функциям НАИБОЛЬШИЙ(;k)/НАИМЕНЬШИЙ(;k) выбирать оба результата, но и с помощью функции ПОИСКПОЗ(;;0) точно определять номера соответствующих строк.

Из личного опыта могу сказать, что для поиска номера строки вместо ПОИСКПОЗ() можно использовать комбинацию функций вида:
номер_строки = ОТБР(1000*(НАИБОЛЬШИЙ(;k)-ОТБР(НАИБОЛЬШИЙ(;k);0));0)
однако, зачастую результат вычисления оказывается некорректно округленным.

Поэтому я предпочитаю преобразовывать результаты функции НАИБОЛЬШИЙ() в текстовый формат; вырезать из него нужные номера строк; а затем преобразовывать их обратно в числовой формат...

zs5

#24
Цитата: IKor от 30.05.2017, 16:46
Поэтому я предпочитаю преобразовывать результаты функции НАИБОЛЬШИЙ() в текстовый формат; вырезать из него нужные номера строк; а затем преобразовывать их обратно в числовой формат...
Perche... Сложить значение с номером строки

IKor

#25
Цитата: zs5 от 31.05.2017, 09:14Perche... Сложить значение с номером строки
Не вполне Вас понял.
Я предлагаю складывать целевое_значение (важно, чтобы оно было целым) с некоторым дробным числом, сгенерированным на основании уникального значения - например, номера строки. В результате мы получим вектор (столбец) числовых значений, в котором точно не будут встречаться одинаковые - т.е. его легко можно будет отсортировать по возрастанию / убыванию.

zs5

Цитата: IKor от 31.05.2017, 13:29
в котором точно не будут встречаться одинаковые
=СТРОКА()+Q7

IKor

2 zs5
Идея заключается в том, чтобы при помощи формул по возможности корректно сортировать оригинальную таблицу данных, в которой присутствует столбец целых чисел с возможными повторяющимися значениями.
Если просто использовать функцию НАИМЕНЬШИЙ() / НАИБОЛЬШИЙ(), то одинаковые значения "отсортируются рядом", но окажется достаточно сложно различить их между собой для подтягивания данных других столбцов из оригинальной таблицы.
Именно поэтому я и предлагаю добавить дробную часть к целевому столбцу целых чисел, позволяющую гарантированно различить числа между собой, не нарушая оригинальный порядок сортировки (!)

Цитата: zs5 от 31.05.2017, 16:57
=СТРОКА()+Q7
Ваше же предложение, помимо того, что нарушает порядок сортировки столбца, так еще и не гарантирует уникальности данных в новом целевом столбце: сумма значения из ячеек столбца Q и номера его строки может оказаться одинаковой для разных ячеек...

zs5

#28
Цитата: IKor от 02.06.2017, 09:58
сумма значения из ячеек столбца Q и номера его строки может оказаться одинаковой для разных ячеек...
это исключает ранг:
=РАНГ.РВ(Q4;$Q$4:$Q$59)

IKor

ZS5
Я проверил Ваш способ сортировки, он так и не смог понять его логику...

Посмотрите прилагаемый файл. В нем я реализовал оба варианта - возможно, Вы имели в виду что-то другое...