Условный массив для расчета процентилей

У меня есть некоторые данные следующим образом:

    val   crit  perc
0.415605498 1   perc1
0.475426007 1   perc1
0.418621318 1   perc1
0.51608229  1   perc1
0.452307882 1   perc1
0.496691416 1   perc1
0.402689126 1   perc1
0.494381345 1   perc1
0.532406777 1   perc1
0.839352016 2   perc2
0.618221702 2   perc2
0.83947033  2   perc2
0.621734007 2   perc2
0.548656662 2   perc2
0.711919796 2   perc2
0.758178085 2   perc2
0.820954467 2   perc2
0.478645786 2   perc2
0.848323655 2   perc2
0.844986383 2   perc2
0.418155292 2   perc2
1.182637063 3   perc3
1.248876472 3   perc3
1.218368809 3   perc3
0.664934398 3   perc3
0.951692853 3   perc3
0.848111264 3   perc3
0.58887439  3   perc3
0.931530464 3   perc3
0.676314176 3   perc3
1.270797783 3   perc3

Я пытаюсь использовать функцию centile.inc() для вычисления 5-го процентиля для каждого уровня crit (поскольку я классифицировал переменную var по классам).

Я пытался использовать {=PERCENTILE.INC(IF($B$2:$B$32=1,$A$2:$A$32,IF($B$2:$B$32=2,$A$2:$A$32,IF($B$2:$B$32=3,$A$2:$A$32,""))),0.05)}, но все, что он делает, это вычисляет процентиль для всего массива и не возвращает мне условные процентили.

Любая помощь будет очень кстати (к вашему сведению, я должен сделать это на 26000 строк с 20 уровнями crit)!


person Chris. Z    schedule 07.12.2015    source источник
comment
Вы пытаетесь получить три ответа по одной формуле. Я предлагаю вам использовать одну и ту же (модифицированную) формулу в трех ячейках, чтобы разделить результаты для трех критических значений. Пробовали модифицированную формулу для вас, доберетесь. Кстати, ваш последний аргумент 0,05 = 5-й процентиль, а не 0,05-й процентиль.   -  person KiwiSteve    schedule 07.12.2015
comment
Спасибо, кто-то уже решил!   -  person Chris. Z    schedule 07.12.2015


Ответы (1)


Это сработало для меня. У меня есть следующий макет:

введите описание изображения здесь

И я использовал следующую формулу в G3:

=PERCENTILE.INC(IF(B:B=F3,A:A),0.05)

Это формула массива, поэтому введите Ctrl+Shift+Enter. Перетащите вниз, как подходит.

person MGP    schedule 07.12.2015
comment
Кажется, это работает, но я должен был указать, что хочу, чтобы он давал мне результат в форме моей таблицы... Со значениями, связанными с каждой строкой. Любой умный способ сделать это? - person Chris. Z; 07.12.2015
comment
Итак, вы хотите, чтобы в вашей колонке perc был процентиль? - person MGP; 07.12.2015
comment
В яблочко! Возможно, небольшая деталь, но она поможет мне в том, что мне нужно делать дальше (кстати, ваша формула отлично работала на всем наборе данных). - person Chris. Z; 07.12.2015
comment
Что вы можете сделать, так это использовать эту формулу в C2 (при условии, что у вас есть заголовки) и перетащить вниз: =PERCENTILE.INC(IF(B:B=B2,A:A),0.05) - person MGP; 07.12.2015
comment
Если у вас много данных, возможно, формула будет немного медленной. Вы можете улучшить скорость, избегая полной ссылки на столбец A:A и B:B и заменяя ее фактическим количеством строк, которые у вас есть, следующим образом: замените A:A на A$2:A$26000 и B:B на B$2:B$26000 - person MGP; 07.12.2015
comment
Да, он работает как сумасшедший с решениями A:A и B:B... Гораздо более плавно с фактическим массивом. Большое спасибо! - person Chris. Z; 07.12.2015