Вопрос

Я пытаюсь вычислить условную медиану диаграммы, которая выглядит следующим образом:

A  |  B
-------
x  |  1
x  |  1
x  |  3
x  |  
y  |  4
z  |  5

Я использую MS Excel 2007.Мне известен оператор AVERAGEIF(), но для Median нет эквивалента.Основная хитрость в том, что есть строки без данных — например, 4-я «а» выше.В данном случае я вообще не хочу, чтобы эта строка учитывалась в расчетах.

Поиск в Google подсказал следующее, но Excel не принимает формат формулы (может быть, потому, что сейчас 2007 год?)

=MEDIAN(IF((A:A="x")*(A:A<>"")), B:B)

Excel выдает ошибку, сообщающую, что с моей формулой что-то не так (что-то связано с * в условии). Я также пробовал следующее, но в расчетах пустые ячейки считаются как 0:

=MEDIAN(IF(A:A = "x", B:B, "")

Я знаю, что эти формулы возвращают «массивы» Excel, а это означает, что нужно ввести «Ctrl-shift-enter», чтобы заставить его работать правильно.

Как я могу выполнить условную оценку и не учитывать пустые ячейки?

Это было полезно?

Решение

Вложенные операторы if.

=MEDIAN(IF(A:A = "x",IF(B:B<>"",B:B, ""),"")

Объяснять особо нечего — он проверяет, является ли A x.Если да, он проверяет, не является ли B пустым.Все, что соответствует обоим условиям, рассчитывается как часть медианы.

Учитывая следующий набор данных:

A | B
------
x | 
x |     
x | 2
x | 3
x | 4
x | 5

Приведенная выше формула возвращает 3,5, чего, я полагаю, вы и хотели.

Другие советы

Используйте формулу Googled, но вместо того, чтобы нажимать Входить после того, как вы введете его в строку формул, нажмите Ctrl+Сдвиг+Входить одновременно (вместо Входить).При этом формула будет заключена в скобки и будет рассматривать ее как массив.

Будьте осторожны: если вы отредактируете его, вы не сможете нажать Входить еще раз, иначе формула будет недействительна.При редактировании вы должны сделать то же самое после завершения (Ctrl+Сдвиг+Входить).

Существует другой способ, не использующий формулу массива, требующую операции CtrlShiftEnter.Он использует функцию Aggregate(), предлагаемую в Excel 2010, 2011 и более поздних версиях.Этот метод также работает для минимума, максимума и различных процентилей.Aggregate() позволяет игнорировать ошибки, поэтому хитрость заключается в том, чтобы все значения, которые не являются обязательными, вызывали ошибки.Самый простой способ выполнить поставленную выше задачу:

=Агрегат(16,6,(B:B)/((A:A = "x")*(B:B<>"")),0.5)

Первый и последний параметры задают сцене процентиль 50%, что является медианой, второй говорит игнорировать все ошибки (включая DIV#0), а третий говорит, что нужно выбрать данные столбца B и разделить их на число, которое один для всех непустых значений, имеющих x в столбце A и ноль в противном случае.Нули создают исключение деления на ноль и будут игнорироваться, поскольку a/1=a и a/0=Div#0

Этот метод работает для квартилей (с соответствующим значением p), конечно, для всех остальных процентилей, а также для максимума и минимума с использованием большой или маленькой функции с соответствующими аргументами.

Это конструкция, похожая на приемы с Sumproduct(), которые так популярны, но которые нельзя использовать для каких-либо квантилей или максимальных и минимальных значений, поскольку они создают нули, которые для этих функций выглядят как числа.

Боб Джордан

Возможно, чтобы обобщить это немного больше, вместо этого...

{=MEDIAN(IF(A:A="x",IF(B:B<>"",B:B)))}

...вы можете использовать следующее:

{=QUARTILE.EXC(IF(A:A="x",IF(B:B<>"",B:B)),2)}

Обратите внимание, что фигурные скобки относятся к формуле массива;вам не следует расставлять скобки в формуле, а следует нажать CTRL+SHIFT+ENTER (или CMD+SHIFT+ENTER в macOS) при вводе формулы.

Тогда вы могли бы легко получить первый и третий квартиль, изменив последнее число с 2 к 1 или 3 соответственно.QUARTILE.EXC — это большинство коммерческих статистических программ (например,Минитаб) пользуйтесь кстати.«Обычная» функция — КВАРТИЛЬ.ВКЛ, а в более старых версиях Excel — просто КВАРТИЛЬ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top