Медиана и режим в Excel с использованием нескольких столбцов - PullRequest
1 голос
/ 28 мая 2020

Я работаю над таблицей для моего класса статистики. Он содержит столбец, заполненный количеством, и столбец, заполненный с частотой для каждого количества. Используя эти два столбца и несколько формул, можно найти среднее значение, режим, медианное значение, вариацию коэффициентов, квартили, межквартильный диапазон, минимальные и максимальные значения и стандартное отклонение.

Проблема в том, что для сокращения списка количеств используется столбец частот. Возьмите список количеств: 10, 12, 14, 15, 18, 18, 10.

Обратите внимание, что 18 и 10 были повторены. Вместо того, чтобы повторять эти количества в моем столбце количеств, я увеличиваю частоту этого количества с 1 до 2. Причина, по которой это делается таким образом, связана с очень большими списками количественных данных. Это означает, что у меня может быть 5000 количеств, которые потенциально могут быть уменьшены до 20 количеств, где каждое количество будет иметь большую частоту.

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

У меня такой вопрос: есть ли способ использовать оба столбца для вычисления медианы и моды? Ниже приведен пример того, что я объяснял. Кроме того, мой столбец, содержащий количества и частоты, может быть не заполнен от начала до конца, что означает, что там могут быть пустые записи.

Quantity  |  Frequency
  10      |     4
  12      |     6
  11      |     3
  15      |     1
  18      |     10

VS.

Quantity
10
10
10
10
12
12
12
12
12
12
11
11
11
15
18
18
18
18
18
18
18
18
18
18

Ответы [ 2 ]

4 голосов
/ 28 мая 2020

Если у вас есть Office 365 с формулой массива Dynami c, используйте:

=MEDIAN(INDEX(A2:A6,MATCH(SEQUENCE(SUM(B2:B6),,0),SUMIF(OFFSET(B1,0,,ROW(B2:B6)-MIN(ROW(B2:B6))+1,),"<>"))))

и

=MODE.SNGL(INDEX(A2:A6,MATCH(SEQUENCE(SUM(B2:B6),,0),SUMIF(OFFSET(B1,0,,ROW(B2:B6)-MIN(ROW(B2:B6))+1,),"<>"))))

enter image description here


Если нет, то эта формула массива:

=MEDIAN(INDEX(A2:A6,MATCH(ROW($ZZ1:INDEX($ZZ:$ZZ,SUM(B2:B6)))-1,SUMIF(OFFSET(B1,0,,ROW(B2:B6)-MIN(ROW(B2:B6))+1,),"<>"))))

и

=MODE.SNGL(INDEX(A2:A6,MATCH(ROW($ZZ1:INDEX($ZZ:$ZZ,SUM(B2:B6)))-1,SUMIF(OFFSET(B1,0,,ROW(B2:B6)-MIN(ROW(B2:B6))+1,),"<>"))))

Является формулой массива, тогда ее необходимо подтвердить с помощью Ctrl-Shift-Enter вместо Enter, когда выход из режима редактирования.

enter image description here

0 голосов
/ 28 мая 2020

Предполагая, что каждое Количество появляется только один раз вместе со своей Частотой, вы можете использовать INDEX MATCH на MAX Частоте, чтобы найти Режим:

=INDEX(A2:A6,Match(Max(B2:B6), B2:B6, 0))

Это, конечно, , возвращать число первое только в том случае, если существует несколько количеств, которые имеют одинаковую максимальную частоту (например, если количество 12 также встречается с частотой 10) , вы можете использовать матричное умножение (MMULT) для вычисления промежуточной суммы для каждой строки и использовать AGGREGATE, чтобы получить наименьшую строку, в которой промежуточная сумма больше или равна половине общей суммы. Это медиана:

=AGGREGATE(15, 6, A2:A6/(MMULT(--(TRANSPOSE(ROW(B2:B6))<=ROW(B2:B6)), B2:B6)>=0.5*SUM(B2:B6)), 1)

(для справки, MMULT(--(TRANSPOSE(ROW(B2:B6))<=ROW(B2:B6)), B2:B6) - это бит, который вычисляет текущую сумму)

...