Основы работы в Gnumeric
2.6.6 Статистические функции.
Основные статистические функции – это min(), max() и average(), вычисляющие, соответственно, минимальное, максимальное и среднее значение для набора аргументов. Аргументы могут быть либо перечислены через точку с запятой (если данные находятся в несмежных ячейках), либо в качестве аргумента может быть использован диапазон ячеек. Также к статистическим функциям можно отнести функции sumif() и countif(), которые формально находятся в Gnumeric среди математических функций, а также функцию rank(), определяющее "рейтинг" какого-то значения в списке аналогичных значений.
В качестве примера рассмотрим следующую задачу.
Дан список участников соревнования среди студентов по бегу на 100 метров и метанию мяча. В таблице (рис. 2.64) указаны пол (юноша или девушка) и результаты. Определить места каждого участника в каждом виде соревнований, минимальный, максимальный и средний результаты в каждом виде соревнований, на сколько юноши (в среднем) метают мяч дальше, чем девушки.
Сразу под списком в соответствующих столбцах подсчитываем максимальный, минимальный и средний результаты (по столбцу С =Max(C2:C16), =Min(C2:C16), =AVERAGE(C2:C16) и аналогично по столбцу D).
Затем подсчитываем количество юношей и количество девушек. В ячейку B22 вносим формулу
=COUNTIF(B2:B16;"юноша"),
а в ячейку B23 формулу
=COUNTIF(B2:B16;"девушка")
В ячейки C22 и C23 записываем формулы для подсчета суммы результатов по метанию для юношей и девушек соответственно
=SUMIF(B2:B16;"юноша",D2:D16)
=SUMIF(B2:B16;"девушка",D2:D16)
После чего подсчитываем среднее значение в ячейках D22 и D23, разделив сумму результатов на количество участников в каждой группе. Затем подсчитываем разницу средних значений (рис. 2.64).
Для иллюстрации использования функции rank() рассмотрим следующую задачу: На основе данных из задачи о соревнованиях распределить места в соревнованиях по бегу среди юношей, а также определить, сколько человек показали результаты ниже среднего (т.е. время больше среднего).
Для распределения участников по местам как раз и потребуется функция rank(), а кроме того потребуется COUNTIF() для вычисления с условием. Однако условие для COUNTIF() обязательно должно быть текстом, поэтому при формировании условия с вычисляемыми данными целесообразно использовать текстовую функцию concatenate(). Результат использования этих функций показан на рис. 2.65.
Формула для определения места участника соревнований (ячейка C2) будет выглядеть следующим образом:
=rank(B2;$B$2:$B$7;1)
Абсолютные адреса диапазона использованы для обеспечения возможности копирования формулы. Третий аргумент установлен в "1", что обеспечивает обратный порядок распределения мест, т.е. чем меньше значение, тем лучше место (первое место – минимальный результат). Для обеспечения прямого порядка распределения мест (первое место – максимальный результат) третий аргумент нужно установить в "0" или не указывать.
Среднее время определяется с помощью функции average(), а условие для подсчета аутсайдеров формируется с помощью текстовой функции concatenate(), которая "сцепляет" строки для формирования одного значения строкового типа. В данном случае в ячейке B10 записана формула
=concatenate(">";B9).
Подсчет аутсайдеров выполняется по формуле (ячейка B11)
=countif(B2:B7;B10).
К статистическим функциям относятся также функции count() (подсчет количества числовых значений в диапазоне ячеек) и counta() (подсчет количества не пустых ячеек в диапазоне). Кроме того, большое число статистических функций вычисляют статистические параметры различных распределений и обеспечивают генерацию случайных чисел с заданными параметрами распределений.