Почти уверен, что на этом блоге присутствуют знатоки Excel. Нужна ваша маленькая помощь для обработки одного нашего нового психологического теста.

Конкретно, я не могу решить одну простейшую задачку, на которой и застопорилась работа:

Нужно назначить позицию каждому значению в столбце данных от наибольшего (ему назначается 1) к наименьшему.

Функция РАНГ не подходит, так как она пропускает числа (и кстати говоря работает некорректно с т.зр. статистики), т.е., как видно на рисунке, пишет 1 2 2 4. А нужно, чтобы всё шло так: 1 2 2 3 и т.д., мать её. Поможете?

GD Star Rating
loading...
Tagged with →  

8 Responses to Нужна помощь знатоков Excel

  1. IrMatematik:

    К слову, статистически правильная формула для ранжирования выглядит так:

    {=ЕСЛИ((СУММ(ЕСЛИ(B$B$12=B7;1)))=1;(СУ ММ(ЕСЛИ(B$B$12>=B7;1;0)));(СУММ(ЕСЛИ(B $B$12>=B7;1)))–((СУММ(ЕСЛИ(B$B$12=B7;1)))–1)/2)}

    А функция РАНГ() воссоздается через:

    {=СУММ(ЕСЛИ(B$B$12>B7;1;0))+1}

  2. 0un:

    Решение через макросы потянет или надо обязательно чтобы работало через стандартные функции?

  3. IrMatematik:

    через макросы вряд ли, потому что искомое значение — только элемент в длинной цепочке формул.

  4. IrMatematik:

    Придется через макросы, конечно, но только в крайнем случае.

  5. IrMatematik:

    Нашёл решение в ролике одного крутого чувака (у него дохрена отличных видеоуроков по Excel, кстати).

    Для того чтобы сделать ранг без перескакивания, а по–порядку (1–2–2–3–4–4–5), придется использовать функции, которых нет в Excel изначально. Для их добавления нужно скачать надстройку Morefunc и установить. Для прямого порядка (наибольший вначале) код будет таким:

    =ПОИСКПОЗ(DF7;UNIQUEVALUES($$DH7);0)

    Для обратного (наименьший получает первое место):

    =COUNTDIFF($$DH7)+1–ПОИСКПОЗ(DF7;UNIQUEVALUES($$DH7);0)

    В принципе пост можно удалить, либо оставить для разных вопросов по excel, хз.

  6. IrMatematik:

    Не знаю, интересно это кому–то или нет, но я также нашёл улучшенный и более простой вариант формулы статистического ранга (со среднеарифметическими величинами):

    =РАНГ(EC7;$$ED7;1)+(СЧЁТ($$ED7)+ 1–РАНГ(EC7;$$ED7;0)–РАНГ(EC7;$$ED7;1))/2

  7. IrMatematik:

    Блин, всегда можно найти решение попрощё. И ничего не придется добавлять в надстройки.

    От наименьшего к наибольшему:

    {=СУММ(ЕСЛИ(DU3>$$ED3;1/СЧЁТЕСЛИ($DU $ED3;$$ED3)))+1}

    От наибольшего к наименьшему (просто меняется > на <):

    {=СУММ(ЕСЛИ(DU3<$$ED3;1/СЧЁТЕСЛИ( $$ED3;$$ED3)))+1}

    И безо всяких макросов, тунц!

  8. 0un:

    Действительно так проще)

Добавить комментарий